我有两个.txt文件(file1.txt和file2.txt)。在这些文件中有一些字符行。我的目的是将这两个文件的内容合并到另一个文件(file3.txt)中。我的代码如下:
public static void main(String[] args) {
try {
PrintWriter pw = new PrintWriter("file3.txt");
BufferedReader br1 = new BufferedReader(new FileReader("file1.txt"));
BufferedReader br2 = new BufferedReader(new FileReader("file2.txt"));
String line = br1.readLine();
while(line!=null){
pw.println(line);
br1.readLine();
}
line = br2.readLine();
while (line!=null) {
pw.println(line);
br2.readLine();
}
pw.flush();
pw.close();
br1.close();
br2.close();
} catch (FileNotFoundException ex) {
Logger.getLogger(JavaIoProject.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(JavaIoProject.class.getName()).log(Level.SEVERE, null, ex);
}
}
编译时没有错误。运行后,当我尝试查看(file3.txt)内的预期输出时,它没有显示任何内容,鼠标指针变为处理。为什么会这样。哪些是我忘记添加的缺失部分或者我应该编辑哪部分以及为什么..需要你的帮助..谢谢。
答案 0 :(得分:2)
您错过了重新分配循环中行的值,因此您获得了无限循环。
同时更改两个循环:
while (line!=null) {
pw.println(line);
line =br2.readLine();
}
答案 1 :(得分:1)
你错过了作业。所以你可以尝试这样的事情。
String line ="";
while((line=br1.readLine())!=null){
pw.println(line);
}
line = "";
while ((line=br2.readLine())!=null) {
pw.println(line);
}
答案 2 :(得分:1)
您在实施中多次重复的代码很多。您可以 只需创建一个方法并按文件名调用它。
PrintWriter pw = new PrintWriter("file3.txt");
readAndWrite(pw, "file1.txt");
readAndWrite(pw, "file2.txt");
pw.flush();
pw.close();
这是readAndWrite方法的定义。也纠正循环。
private static void readAndWrite(PrintWriter pw, String filename) throws FileNotFoundException, IOException {
BufferedReader br = new BufferedReader(new FileReader(filename));
String line = br.readLine();
while (line!=null) {
pw.println(line);
line =br.readLine();
}
br.close();
}