Следующий код создает и добавляет один файл sheet1.xml
внутри zip-файла test.zip
.
- Как мне заставить работать второй код?
- Как мнесоздавать папки и файлы, используя Java Zip
Filesystem
?
Рабочая функция
public static void main(String[] args) {
Map<String, String> env = new HashMap<>();
env.put("create", "true");
Path path = Paths.get("test.zip");
URI uri = URI.create("jar:" + path.toUri());
try (FileSystem fs = FileSystems.newFileSystem(uri, env))
{
Path nf = fs.getPath("sheet1.xml");
try (Writer writer = Files.newBufferedWriter(nf, StandardCharsets.UTF_8, StandardOpenOption.CREATE, StandardOpenOption.APPEND)) {
writer.write("hello");
}
} catch (IOException e) {
e.printStackTrace();
}
}
Не рабочий класс
public class Test {
String filename="test.zip"; String sheet="sheet1.xml";
FileSystem fs; Path nf; Writer writer;
void setup() {
Map<String, String> env=new HashMap<>();
env.put("create","true");
Path path = Paths.get(filename);
URI uri=URI.create("jar:"+path.toUri());
try {
fs = FileSystems.newFileSystem(uri,env);
nf = fs.getPath("sheet1.xml");
try {
writer = Files.newBufferedWriter(nf, StandardCharsets.UTF_8,
StandardOpenOption.CREATE, StandardOpenOption.APPEND);
}
catch (IOException e){
System.err.println(e.getMessage());
}
} catch (IOException e) {
System.err.println(e.getMessage());
}
}
void loop() {
try {
writer.write("<row></row>");
} catch (IOException e) {
System.err.println("IOException"+e.getMessage());
}
}
static public void main(String[] args){
Test Test= new Test();
Test.setup(); Test.loop();
System.out.println("Test");
}
}