以下程序从文件中读取并写入输出文件 。这工作得非常好,但我想知道为什么它正常工作。我不应该在文件末尾添加额外的线条?但为什么它工作正常。请解释其行为
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();
}
答案 0 :(得分:1)
您 打印新的换行符。如果继续写入文件,则内容将在以下行中。
目前还不清楚你的输出中是否有明确的空行,但是如果你在while循环后写入文件,那么它将在def
之后的行上。
在编写文件之前,您可能需要另外trim
文件中的输入行以删除其他空格,不可打印的字符。
您还可以在写入周围放置一个if语句来检查空行,以便跳过它们
答案 1 :(得分:-1)
当您从文件中读取时也使用新闻空间技术。喜欢,
while(c != 0){
fileOutputStream = ("/n" + c); /*then read it as...*/
c = "/n" + fileInputStream.readLine();
}