用户可以在jar中打开文本文件并对其进行更改吗?

时间:2014-03-27 17:14:28

标签: java file text jar

我需要在jar中放一个文本文件。当用户运行jar时,将出现登录屏幕。一旦他登录并验证自己,只有一个文本文件应该出现,他应该能够写入并保存它。我完成了登录和身份验证部分,任何人都可以帮我编码只打开文本文件的部分,用户有权写入并保存吗?

1 个答案:

答案 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

请注意重命名原始文件的方式是最后操作。