为什么要创建一个新文件?

我正在研究一个项目。 问题是,该程序可以从名为“ 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)));
    }
}
fdsafdsaga 回答:为什么要创建一个新文件?

语句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))); 
}

还值得注意的是,在同一文件上打开缓冲读取器和缓冲写入器可能会导致问题。

,

Lol发现了错误。字符串“文件”为“ Resources / Stundenzettel”,但字符串应为“ Resources / Stundenzettel.txt”。 Nvm

本文链接:https://www.f2er.com/2383478.html

大家都在问