【发布时间】:2020-04-25 05:58:45
【问题描述】:
所以,当我使用FileOutputStream 写入文件时,它确实 更改了文件的内容,就像我使用InputStream 读取它时一样,我得到的正是我所写的。但是,当我在资源目录中打开文件时,它仍然和以前一样,尽管它被更改了。
我的代码:
import java.io.*;
import java.net.URISyntaxException;
import java.net.URL;
public class Program {
public static void main(String[] args) throws URISyntaxException, IOException {
String edit = "Edit2";
String fileName = "/File.txt";
URL url = Object.class.getResource(fileName);
try (FileOutputStream fos = new FileOutputStream(new File(url.toURI()))) {
fos.write(edit.getBytes());
}
try(InputStream is = Object.class.getResourceAsStream(fileName)) {
StringBuilder sb = new StringBuilder();
int read = is.read();
while (read != -1) {
sb.append((char) read);
read = is.read();
}
System.out.println(sb.toString());
}
}
}
顺便说一句,我使用的是 IntelliJ IDEA,并且在资源文件夹中有这个文件。它只是一个.txt 文件,内容为Not changed,所以我可以知道它是否被覆盖。
我想知道这个问题是否与代码有关,如果是,我该如何解决?
【问题讨论】:
标签: java file overwrite fileoutputstream