无法在可运行的JAR文件中写入文件



我将可运行的JAR文件保存到另一个目录(不在项目文件夹中)。现在,我可以从可运行的JAR文件中读取数据,但是我不能在file中写入任何数据。

读取数据代码:

try {
BufferedReader reader = new BufferedReader(new InputStreamReader(getClass().getClassLoader()
.getResourceAsStream("TaskList.txt")));
StringBuilder sb = new StringBuilder();
String line = null;

while((line = reader.readLine()) != null) {
sb.append(line + "n");
textArea.setText(sb.toString());
}
reader.close();
}
catch(Exception ex) {
JOptionPane.showMessageDialog(null, "File Not Found");
}

数据写入代码:

try{
String content = textArea.getText();
Writer writer = new OutputStreamWriter(new FileOutputStream("bin/TaskList.txt"));
writer.write(content);
writer.close();
}
catch(Exception ex) {

}

一旦编译了JAR,其中的文件就不能更改了。与此类似的问题在这里也有人提出并回答了。
不能这样做的原因是,JAR类似于ZIP文件。为了更改其中的内容,必须解压缩,编辑,然后重新压缩。对于像rar或7z这样的归档文件也是如此。如果您需要写入一个文件,那么该文件必须是本地的,并且不能在归档的JAR中。

相关内容

  • 没有找到相关文章

最新更新