用Java写入文件.帮我编码

ank*_*ses 1 java file-io filewriter

我正在传递一个文件路径到这个写入txt文件的方法.但是当我运行这个程序时,它并没有写满,我不知道我在哪里弄错了.

public void content(String s) {
  try { 
    BufferedReader br=new BufferedReader(new FileReader(s)); 
    try {
      String read=s;
      while((read = br.readLine()) != null) {    
        PrintWriter out = new PrintWriter(new FileWriter("e:\\OP.txt"));
        out.write(read);
        out.close();
      }
    } catch(Exception e) { }    
  } catch(Exception e) { }
}
Run Code Online (Sandbox Code Playgroud)

Rof*_*ion 7

您不应每次在循环内创建PrintWriter:

public void content(String s) {
   BufferedReader br=new BufferedReader(new FileReader(s));

   try {
      PrintWriter out=new PrintWriter(new FileWriter("e:\\OP.txt"));
      String read=null;

      while((read=br.readLine())!=null) {
         out.write(read);
      }
   } catch(Exception e) {
      //do something meaningfull}
   } finally {
      out.close();
   }
}
Run Code Online (Sandbox Code Playgroud)

另外,正如其他人提到的那样,添加一个finally块,不要静默捕获异常,并遵循Java编码约定.