循环时不进入

时间:2015-01-10 03:36:32

标签: java swing file-io io jtextcomponent

我试图在用户编写的文件中写入。 该文件创建,除了程序之外的所有程序都无法写入用户从程序写入的任何内容到文件(该程序就像记事本)。它不会进入while循环,因为即使我在程序中写了一些东西,String行也是null。

enter image description here

当我打印"行"它似乎返回null。使用br.readLine()后的字符串。

enter image description here

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();
}

1 个答案:

答案 0 :(得分:2)

file.createNewFile();
. . .
BufferedReader br = new BufferedReader(new FileReader(file));

阅读器使用刚刚创建的空文件。当然,br.readLine()将立即返回null,因为文件为空。

而不是while循环,我只想写:

bw.write(textArea.getText());