不进入while循环
Not entering while loop
我正在尝试将用户写入的内容写入文件。
该文件创建并且除了程序之外的所有内容都无法将用户从程序写入的任何内容写入文件(该程序就像记事本一样)。它不会进入 while 循环,因为即使我在我的程序中写了一些东西,字符串行也是空的。
当我使用 br.readLine() 打印 "line" 字符串时,它似乎返回 null。
while ((line = br.readLine()) != null) {
bw.write(line);
textArea.append("it worked");
}
完整代码:
try {
path = fileChooser.getSelectedFile().getAbsolutePath().replace('\', '/')
+ "/";
File file = new File(path + File.separator +
JOptionPane.showInputDialog(null, "File name", "File") + ".txt");
file.createNewFile();
FileWriter fw = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(fw);
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
bw.write(line);
textArea.append("it worked");
}
bw.flush();
bw.close();
textArea.append(path);
} catch(IOException e1) {
e1.printStackTrace();
}
file.createNewFile();
. . .
BufferedReader br = new BufferedReader(new FileReader(file));
reader 从刚创建的空文件开始工作。当然 br.readLine()
会 return 立即为空,因为文件是空的。
而不是 while 循环,我会简单地写:
bw.write(textArea.getText());
我正在尝试将用户写入的内容写入文件。 该文件创建并且除了程序之外的所有内容都无法将用户从程序写入的任何内容写入文件(该程序就像记事本一样)。它不会进入 while 循环,因为即使我在我的程序中写了一些东西,字符串行也是空的。
当我使用 br.readLine() 打印 "line" 字符串时,它似乎返回 null。
while ((line = br.readLine()) != null) {
bw.write(line);
textArea.append("it worked");
}
完整代码:
try {
path = fileChooser.getSelectedFile().getAbsolutePath().replace('\', '/')
+ "/";
File file = new File(path + File.separator +
JOptionPane.showInputDialog(null, "File name", "File") + ".txt");
file.createNewFile();
FileWriter fw = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(fw);
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
bw.write(line);
textArea.append("it worked");
}
bw.flush();
bw.close();
textArea.append(path);
} catch(IOException e1) {
e1.printStackTrace();
}
file.createNewFile();
. . .
BufferedReader br = new BufferedReader(new FileReader(file));
reader 从刚创建的空文件开始工作。当然 br.readLine()
会 return 立即为空,因为文件是空的。
而不是 while 循环,我会简单地写:
bw.write(textArea.getText());