BufferWriter写入文件

时间:2016-06-26 14:27:40

标签: java bufferedreader

以下程序从文件中读取并写入输出文件 。这工作得非常好,但我想知道为什么它正常工作。我不应该在文件末尾添加额外的线条?但为什么它工作正常。请解释其行为

INPUTFILE:

ABCDEFG

DEF

输入是newline + abcdefg + newline + def,就是这样! 根据代码,它应该在末尾添加一个额外的行,但它只是工作正常。

try (
        BufferedReader bufferedReader = new BufferedReader(
            new FileReader(new File("/home/admins/Desktop/Sources/src/input.txt")));
        BufferedWriter bufferedWriter = new BufferedWriter(
            new FileWriter(new File("/home/admins/Desktop/Sources/src/output.txt")))) {
    String c = bufferedReader.readLine();
    while (c != null) {
        bufferedWriter.write(c+"\n");
        c=bufferedReader.readLine();
    }
} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

2 个答案:

答案 0 :(得分:1)

打印新的换行符。如果继续写入文件,则内容将在以下行中。

目前还不清楚你的输出中是否有明确的空行,但是如果你在while循环后写入文件,那么它将在def之后的行上。

在编写文件之前,您可能需要另外trim文件中的输入行以删除其他空格,不可打印的字符。

您还可以在写入周围放置一个if语句来检查空行,以便跳过它们

答案 1 :(得分:-1)

当您从文件中读取时也使用新闻空间技术。喜欢,

while(c != 0){
    fileOutputStream = ("/n" + c); /*then read it as...*/    
    c = "/n" + fileInputStream.readLine();
}