文件读/写正确的顺序

时间:2015-05-27 15:49:07

标签: java file bufferedreader bufferedwriter

所以我正在研究这个需要创建文件的程序,写入该文件,然后从该文件中读取。但是,该文件未被写入但仍在创建中。首先,这是我的文件中的构造函数的声明,我在使用stuff类(称为filer):

private static FileWriter fw;
private static FileReader fr;
private static BufferedWriter bw;
private static BufferedReader br;

主类的主要方法首先执行此openFile()方法,该方法位于文件管理器类中。这是openFile():

public static void openFile() {
    try{ //exception handling
        file = new File("jibberish.txt");
        fw = new FileWriter(file); //dont put filewriter or buffedwriter before these, because already declared and end up
        bw = new BufferedWriter(fw);  //making null expection thing
        fr = new FileReader(file);
        br = new BufferedReader(fr);
    }catch(IOException ioe){ 
        System.out.println("Trouble reading from the file: " + ioe.getMessage());
    }
}

现在在main方法中,我设置了一个面板,它可以从另一个连接类中正常工作。有一个jTextField接受用户输入的内容,并通过这个类运行它,这是我似乎无法在文件中实际写入的地方。

 public static void addStuff(String toAdd){ 
    String line = "";
    try {
        bw.write(toAdd);
        //bw.newLine();
        System.out.println(toAdd + " added");
        //line = br.readLine();
         while((line = br.readLine()) != null) {
                System.out.println(line + "r");
            }
    } catch (IOException e) {               
        e.printStackTrace();
        System.out.println("Error at addstuff");
    }
}

所以我需要程序做的,它现在不做,实际上写入文件并能够读取它。提前谢谢!

2 个答案:

答案 0 :(得分:2)

请务必添加

bw.flush();
在写入之后

写入代码以刷新缓冲区并将数据放入文件中以便能够将其读回。

答案 1 :(得分:0)

我不确定问题究竟是什么,因为我刚刚做了你刚刚做的事情,它对我有用:

这是完整的类代码:

for i = 1:length(r)
    mysystems(i) = tf(r(i), [1, -p(i)]);
end