在Java中打开文件、写入文件和从文件中删除文件

在Java中打开文件、写入文件和从文件中删除文件,java,file,file-io,Java,File,File Io,我有一个赋值,其中有一个构造函数和两个方法。构造函数打开该文件,如果该文件不存在,它将创建一个。这些方法只是在文件中添加新行并从文件中删除特定行。我有这个: public openFile(String fileName) { File f = new File(filename); BufferedReader b = new BufferedReader(new FileReader(f)); String line; if (f.exists()) {

我有一个赋值,其中有一个构造函数和两个方法。构造函数打开该文件,如果该文件不存在,它将创建一个。这些方法只是在文件中添加新行并从文件中删除特定行。我有这个:

public openFile(String fileName) {
    File f = new File(filename);
    BufferedReader b = new BufferedReader(new FileReader(f));
    String line;
    if (f.exists()) {
        while ((line = b.readLine()) != null) {
            if (b.readLine().contains(COMMA)) {
                String[] tokens = line.split(COMMA); // parse information on line
                User u = new User(tokens[0], tokens[1]); // Creates new user
            } else {
                f.createNewFile();
            }
            b.close();
        }
    }
}
我的其他方法是:

public add(String[] args) {
   FileWriter fileWriter;
   BufferedWriter bufferedWriter;
   String message = args[1] + COMMA + args[2] + "\n";
   try {
        fileWriter = new FileWriter(TEST_CSV, true); // Test_CSV is name of the file I have to write to.
        bufferedWriter = new BufferedWriter(fileWriter);
        bufferedWriter.write(message);
        bufferedWriter.close();
    } catch (IOException e) {
            //Do nothing
    }

但它根本不起作用。我如何更改它,使它可以添加文件而不必每次删除它并创建新文件。

我认为您的
f.createNewFile()位于错误的位置,每次从文件中读取一行时它都在执行,请尝试以下操作:

public openFile(String fileName) {
    File f = new File(filename);
    BufferedReader b = new BufferedReader(new FileReader(f));
    String line;
    if (f.exists()) {
        while ((line = b.readLine()) != null) {
            if (b.readLine().contains(COMMA)) {
                String[] tokens = line.split(COMMA); // parse information on line
                User u = new User(tokens[0], tokens[1]); // Creates new user
            }
        }

    } else {
        f.createNewFile();
    }
    b.close();
}
另外,您在每行之后都要关闭缓冲读取器,因此我移动了
b.close()