如何将多行从JTextArea保存到Java中的文件

时间:2017-12-29 07:02:16

标签: java file jtextarea

我正在制作一个简单的记事本,它会将内容从JTextArea保存到文件中。但我有一个问题,我无法保存多行文字。

这是我的代码:

<td>
    <a rel="facebox"  
    <?php if ($row['division']=="Leech") { ?>
        href="viewevaldme.php?evaid=<?php echo $row['evaid']; ?>" >  
    <?php } elseif ($row['division']=="DME") { ?>
        href="vieweval.php?evaid=<?php echo $row['evaid']; ?> " 
    <?php } else { echo "Wrong Division Selected"; } ?>
        Click Here 
    </a> 
</td>

例如,我有一个按钮和一个textarea。当我输入这样的内容时:

JTextArea textArea = new JTextArea();
File writeFile;
FileWriter fileWriter = null;
BufferedWriter bufWriter = null;

writeFile = new File("note.txt");
try {
    fileWriter = new FileWriter(writeFile);
    bufWriter = new BufferedWriter(fileWriter);
    bufWriter.write(textArea.getText());
    bufWriter.close();
} catch (IOException e) {
    e.printStackTrace();
}

然后按按钮保存,创建文件。但文件的内容,就像这样

test line 1
test line 2

请给我一个详细的答案,这样我才能理解。我是java GUI的新手。

非常感谢。

1 个答案:

答案 0 :(得分:1)

尝试完代码后,我发现您的代码只将文本保存在一行中。例如,在文本区域,它看起来像这样

第一行
第二行
第三行

但是你刚刚获得的文件

第一个linesecond linethird line

如果是这种情况,您可以使用此代码

    File writeFile;
    Writer writer = null;

    writeFile = new File("D:\\note.txt");
    try {
        writer = new BufferedWriter(new OutputStreamWriter(
                new FileOutputStream(writeFile), "utf-8"));
        jTextArea1.write(writer);
    } catch (IOException ex) {
        // report
    } finally {
        try {
            writer.close();
        } catch (Exception ex) {/*ignore*/
        }
    }

在这段代码中我们使用了jtextarea本身的编写器,因此它将保存我们在jtextarea中看到的文本。

希望这个帮助