我需要在jar中放一个文本文件。当用户运行jar时,将出现登录屏幕。一旦他登录并验证自己,只有一个文本文件应该出现,他应该能够写入并保存它。我完成了登录和身份验证部分,任何人都可以帮我编码只打开文本文件的部分,用户有权写入并保存吗?
答案 0 :(得分:0)
您可以这样做,但不要直接修改文件。如果由于某种原因写入修改后的内容失败,则会丢失原始文件和修改后的文件。
创建一个临时文件,在其中放置修改后的内容,然后替换原始文件。
示例:
final Map<String, String> = Collections.emptyMap();
final URI zip = URI.create("jar:file:/path/to/your/jar");
final FileSystem zipfs = FileSystems.newFileSystem(zip, env);
final Path tempFile = Files.createTempFile("tmp", "txt");
final Path srcfile = zipfs.getPath("path/of/file/into/jar");
final Path renamed = srcfile.resolveSibling("newfile");
// read contents of source file, for instance Files.newBufferedReader(), or
// Files.readAllLines(); then write the modified content into tempFile; and
// when done:
Files.copy(tempFile, renamed);
Files.delete(tempFile);
Files.move(renamed, srcfile, StandardCopyOption.REPLACE_EXISTING);
zipfs.close(); // <-- don't forget that
请注意重命名原始文件的方式是最后操作。