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)
您不应每次在循环内创建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编码约定.