我正在研究一个项目。事实是,该程序可以从名为“ Stundenzettel”的现有文件(路径:“ Resources / Stundenzettel.txt)”中读取)。
但是,一旦我创建我的类“ BufferedIO”的对象,就会创建一个与“ Stundenzettel”具有相同文件路径的新文件。但是我不希望创建此文件,我希望BufferedWriter写入现有文件中。
所以这是我的类“ BufferedIO”:
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class BufferedIO {
public BufferedWriter bufWriter;
public BufferedReader bufReader;
private String file;
public BufferedIO(String Speicheradresse) {
try {
file = Speicheradresse;
bufWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file, true)));
bufReader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
} catch(IOException exc) {
System.out.println("You are screwed... IOException");
}
}
public void resetFile() throws FileNotFoundException {
bufWriter = new BufferedSchreiber(new OutputStreamWriter(new FileOutputStream(file, false)));
}
}
new FileOutputStream(file, true)
语句将创建与file
中的路径名相对应的文件,如果尚不存在。
如果只想写入(附加到)文件(如果文件已经存在,那么您的代码需要看起来像这样:
if (java.io.File.exists(file)) {
bufWriter = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(file, true)));
}
或更好
java.nio.file.Path path = java.nio.file.Paths.get(file);
if (java.nio.file.Files.isExists(path)) {
bufWriter = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(file, true)));
}
值得注意的是,在同一文件上打开缓冲读取器和缓冲写入器可能会导致问题。
大声笑发现错误。字符串“文件”为“ Resources / Stundenzettel”,但字符串应为“ Resources / Stundenzettel.txt”。 Nvm