- Создал зип архив с содержимым как по условию - args[1]
- Создал файл который надо добавить в этот архив - args[0]
- Попытался подставить реальные данные в уже решенную и принятую задачу
- В папке TEST.zip остается только - result.mp3
public class CreatTestZip {
public static void main(String[] args) throws IOException {
ZipOutputStream zos = new ZipOutputStream(new FileOutputStream("TEST.zip"));
ZipEntry ze = new ZipEntry("a.txt");
zos.putNextEntry(ze);
zos.write("всякая хуета файла а".getBytes());
ze = new ZipEntry("b.txt");
zos.putNextEntry(ze);
zos.write("всякая хуета файла b".getBytes());
zos.close();
}
}
public class LikeJavaTask {
public static void main(String[] args) throws IOException {
String fileName = "/Users/sergeybezverkhniy/Desktop/result.mp3";
String zipFile = "/Users/sergeybezverkhniy/Desktop/TEST.zip";
Map<String, ByteArrayOutputStream> map = new HashMap<>();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try (ZipInputStream zis = new ZipInputStream(new FileInputStream(zipFile)))
{
ZipEntry ze;
int lenght;
byte[] buffer = new byte[1024];
while ((ze = zis.getNextEntry()) != null)
{
while ((lenght = zis.read(buffer)) > 0)
{
baos.write(buffer,0,lenght);
}
map.put(ze.getName(), baos);
zis.closeEntry();
}
}
try (ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipFile)))
{
fileName = fileName.substring(fileName.lastIndexOf(File.separator)+1);
ZipEntry ze1 = new ZipEntry("new/" + fileName);
zos.putNextEntry(ze1);
Files.copy(Paths.get(fileName),zos);
zos.closeEntry();
for (Map.Entry<String,ByteArrayOutputStream> pair : map.entrySet())
{
ze1 = new ZipEntry(pair.getKey());
if(!ze1.toString().endsWith(fileName))
{
zos.putNextEntry(ze1);
zos.write(pair.getValue().toByteArray());
zos.closeEntry();
}
}
}
}
}
Sergey Bezverkhniy
32 уровень
Практика критерий истины!!! Проблемы с практическим приминением??? Help
Решен
Комментарии
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
У этой страницы еще нет ни одного комментария