从文件输入并在文件中保存输出

时间:2015-04-11 01:20:22

标签: java file java-io

我无法打印file.BufferedWriter中的所有输出效果不佳。我错误地将程序输出保存到文件中。

public class delete {

    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub

        int alphabet=0;
        char ch;
        int n=0; 
        String line;        
        BufferedReader br = new BufferedReader(new FileReader("InputFileLocation"));
        line= br.readLine();
        while ((line = br.readLine()) != null) {
              for(int i=0;i<line.length();i++){

                  ch=line.charAt(i);
                            if(ch=='a')
                                alphabet ++;
              }

                            BufferedWriter bw = new BufferedWriter(new FileWriter("OutputFileLocation"));
                            n++;    
                            System.out.println("case#"+n+":"+alphabet);
                            bw.write(String.valueOf(alphabet));
                            bw.close();
                            alphabet=0;

        }
        br.close();

    }
}

2 个答案:

答案 0 :(得分:0)

如果不运行此操作,我会注意到您通过检索它来丢弃第一行,然后在第一次运行条件时检索另一行。

另外,如果您要将每一行写入输出文件,那么您可能希望在while循环之外移动bw的初始化。至少你想使用FileWriter(String,boolean)构造函数而不是创建一个新文件。

答案 1 :(得分:0)

不要在循环中创建新的BufferedWriter,这是一个糟糕的设计。

你可以尝试在关闭之前放入bw.flush()。

bw.close()隐式调用flush,但是我遇到了类似的问题,我不得不明确地调用flush来工作。