Derzeit versuche ich einen Level-Editor für ein Java-Spiel, das ich erstellt habe.
Mein Problem ist, dass mein Programm die bearbeiteten Ebenen nicht speichert. HierFileSystem Fehler beim Versuch, es zu schließen
ist der Code, den ich bisher gemacht:
Path path = Paths.get(gameFile.getAbsolutePath());
FileSystem fs = FileSystems.newFileSystem(path, null);
Path p = fs.getPath("rpg"+fs.getSeparator()+"levels"+fs.getSeparator()+"level"+(short)level+".png");
OutputStream os = Files.newOutputStream(p);
ImageIO.write(img, "png", os);
os.close();
fs.close();
gameFile
ist die .jar-Datei von meinem Spiel, das die Ebenen und die Ebenen enthält als .png-Dateien gespeichert.
Ich habe versucht, mein Bild außerhalb des Glases zu speichern und es funktionierte, also vermute ich, dass ich einen Fehler mit dem Dateisystem oder dem Pfad gemacht habe.
Der Weg in das Glas ist rpg/levels/Niveau * .png
Edit:
I
OutputStream os = Files.newOutputStream(p);
zu
OutputStream os = Files.newOutputStream(p,StandardOpenOption.CREATE,StandardOpenOption.TRUNCATE_EXISTING);
aber jetzt bekomme ich einen Fehler, wenn das Schließen filesystem
java.nio.file.FileSystemException: G:\RPG.jar: The process cannot access the file because it is being used by another process.
at sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
at sun.nio.fs.WindowsFileSystemProvider.implDelete(Unknown Source)
at sun.nio.fs.AbstractFileSystemProvider.delete(Unknown Source)
at java.nio.file.Files.delete(Unknown Source)
at com.sun.nio.zipfs.ZipFileSystem.sync(ZipFileSystem.java:1294)
at com.sun.nio.zipfs.ZipFileSystem.close(ZipFileSystem.java:277)
at de.jorolf.editor.LevelEditor$5.actionPerformed(LevelEditor.java:213)
Wenn ein Benutzer Ihre Frage beantwortet auch bitte ** ** akzeptieren seine Antwort ([Akzeptieren Antworten: Wie funktioniert das?] (Https: // Meta .stackexchange.com/questions/5234/Wie-akzeptiert-eine-Antwort-Arbeit)). Wenn nicht, geben Sie bitte an, was unbeantwortet bleibt, dies ist ein sehr wichtiger Teil von StackOverflow, vielen Dank. – Zabuza