Поиск:

Ответ в темуСоздание новой темы Создание опроса
> groovy create a zip archive 
V
    Опции темы
Samotnik
Дата 5.2.2010, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: нет
Всего: 191



САБЖ. 
Нужно создать zip  на groovy. С groovy не знаком. Но нашел вот такой код
Код

import java.util.zip.ZipOutputStream
import java.util.zip.ZipEntry
import java.nio.channels.FileChannel

String zipFileName = "file.zip"
String inputDir = "logs"

ZipOutputStream zipFile = new ZipOutputStream(new FileOutputStream(zipFileName))
new File(inputDir).eachFile() { file ->
zipFile.putNextEntry(new ZipEntry(file.getName()))
def buffer = new byte[1024]
file.withInputStream { i ->
def l = i.read(buffer)
// check wether the file is empty
if (l > 0) {
zipFile.write(buffer, 0, l)
}
}
zipFile.closeEntry()
}
zipFile.close()

Я был бы очень признательный хотя бы за объясение его (В частности меня очень интересует опреатор -> ). Либо помощь в следующем. Сейчас этот код создает архив file.zip и ложит туда файлы из папки logs 
Мне нужно,  создать иеррархию папок в архиве. Как це сделать ? 
PM MAIL   Вверх
serger
Дата 6.2.2010, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 19.6.2007
Где: Ижевск

Репутация: нет
Всего: 5



-> - это замыкание.
Пиши как на java и не мучайся - groovy понимает синтакис java.

Добавлено через 5 минут и 13 секунд
Код

new File(inputDir).eachFile() { file -> ... }


Этот для каждого результата вызова метода eachFile, представленного в виде file - вызывает код после "->".

Добавлено через 9 минут и 4 секунды
соответственно file нужен для работы над результатом...
Описание, например, тут:
http://blog.alno.name/2008/06/using-groovy-2/

зы: мне это чем-то напоминает пример работы с итераторами на java:
for(String s:ss){
}
только гибчее. Или я заблуждаюсь?..


--------------------
упс!
PM MAIL WWW Skype GTalk Jabber   Вверх
magicfly
Дата 8.2.2010, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 21.2.2007

Репутация: нет
Всего: 1



Да, похоже но явно гибче например
 
Код

var strArray=...
var firstChars=strArray.collect{it[0]}

теперь в firstChars содержатся первые символы всех строк
PM MAIL   Вверх
magicfly
Дата 15.2.2011, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 21.2.2007

Репутация: нет
Всего: 1



Как можно писать на груви не знать замыканий? 
Можно посмотреть на этом примере:
Получается коллекция первых букв :strArray.collect{it[0]}
strArray.collect{str->str[0]} - тоже самое
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Groovy & Grails | Следующая тема »


 




[ Время генерации скрипта: 0.0453 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.