Hallo,
ich habe ein Programm geschrieben, dass aus mehreren Matrizzen von double-Werten mehrere CSV-Dateien direkt in einer ZIP-Datei erstellt. Hierfür habe ich die java.io und die java.util API verwendet und dabei FileOutputStream, BufferedOutputStream, ZipOutputStream, OutputStreamWriter und BufferedWriter verwendet.
Nun würde ich diese Anwendung testweise auch mit der neuen java.nio so implementieren, dass die ZIP-Datei asynchron geschrieben wird und ich evtl. von Multithreading profitieren kann.
Nun stecke ich aber schon bei grundlegenden Dingen fest, denn folgender Code führt zu folgender Exception:
Wie kann ich denn mit Java.nio einen zu folgendem Code aquivalenten Code erzeugen.
ich habe ein Programm geschrieben, dass aus mehreren Matrizzen von double-Werten mehrere CSV-Dateien direkt in einer ZIP-Datei erstellt. Hierfür habe ich die java.io und die java.util API verwendet und dabei FileOutputStream, BufferedOutputStream, ZipOutputStream, OutputStreamWriter und BufferedWriter verwendet.
Nun würde ich diese Anwendung testweise auch mit der neuen java.nio so implementieren, dass die ZIP-Datei asynchron geschrieben wird und ich evtl. von Multithreading profitieren kann.
Nun stecke ich aber schon bei grundlegenden Dingen fest, denn folgender Code führt zu folgender Exception:
Code:
try {
Path path = Files.createTempFile("Archive", ".zip");
FileSystem fileSystem = FileSystems.newFileSystem(path, null);
System.out.println(fileSystem);
} catch (final IOException e) {
e.printStackTrace();
}
Exception in thread "main" java.util.zip.ZipError: zip END header not found
at com.sun.nio.zipfs.ZipFileSystem.zerror(ZipFileSystem.java:1605)
at com.sun.nio.zipfs.ZipFileSystem.findEND(ZipFileSystem.java:1021)
at com.sun.nio.zipfs.ZipFileSystem.initCEN(ZipFileSystem.java:1030)
at com.sun.nio.zipfs.ZipFileSystem.<init>(ZipFileSystem.java:130)
at com.sun.nio.zipfs.ZipFileSystemProvider.newFileSystem(ZipFileSystemProvider.java:139)
at java.nio.file.FileSystems.newFileSystem(Unknown Source)
at de.koch.nio.Demo.main(Demo.java:19)
Wie kann ich denn mit Java.nio einen zu folgendem Code aquivalenten Code erzeugen.
Code:
File file = File.createTempFile("Archive", ".zip");
FileOutputStream fileOutputStream = new FileOutputStream(file);
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
ZipOutputStream zipOutputStream = new ZipOutputStream(bufferedOutputStream);