gpt4 book ai didi

java - 如何在运行时修改 Jar 文件内的文本文件?

转载 作者:行者123 更新时间:2023-11-30 07:38:11 24 4
gpt4 key购买 nike

正如问题所说,这怎么可能?这个文件是我的项目结构(我使用的是 eclipse)。

enter image description here

当导出为 Jar 时,我可以使用下面的代码通过控制台访问和打印“root.ini”内容,但是,如何在运行时写入该文件?

从“Main.java”调用此方法

private void readRoot(){
InputStream is = getClass().getResourceAsStream("/img/root.ini");
BufferedReader br = null;

br = new BufferedReader(new InputStreamReader(is));
String path = "";

try {
path = br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(path);
}

我实际上想做的是从 JTextField 获取一些文本,并将其保存到“root.ini”文件中。

所以当我尝试像这样写入该文件时

private void writeRoot() {
URL u = getClass().getResource("/img/root.ini");
File f = null;
try {
f = new File(u.toURI());
FileWriter fw = new FileWriter(f.getAbsolutePath());
BufferedWriter bw = new BufferedWriter(fw);

bw.write("Sample text"); //This String is obtained from a TextField.getText();

bw.close();
fw.close();
} catch (URISyntaxException | IOException e) {
e.printStackTrace();
}
}

并向我抛出这个错误

C:\Users\Francisco\Desktop\tds>java -jar TDS.jar Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: URI is not hierarchical at java.io.File.(Unknown Source) at main.Configuracion.writeRoot(Configuracion.java:99) at main.Configuracion.access$1(Configuracion.java:95)

最佳答案

您无法更改 jvm 当前使用的 jar 的任何内容。该文件被操作系统视为已锁定,因此无法更改。

我建议将此文件写入 jar 文件之外。例如在相对于当前工作目录的 /conf 目录中。

关于java - 如何在运行时修改 Jar 文件内的文本文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35072320/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com