根据BufferedReader中方法readLine的描述:“通过下列字符之一即可认为某行已终止:换行 ('\n')、回车 ('\r') 或回车后直接跟着换行。“
为什么我通过代码:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
class IO流 {
public static void main(String[] args) throws IOException{
FileReader fr = new FileReader("Demo.txt");
BufferedReader bufr = new BufferedReader(fr);
FileWriter fw = new FileWriter("DemoCopy.txt");
BufferedWriter bufw = new BufferedWriter(fw);
String str = null;
while((str = bufr.readLine())!=null){
bufw.write(str);
bufw.newLine();
bufw.flush();
}
bufr.close();
bufw.close();
}
}
复制内容为:
abcde1
abc\r\nde2
abcde3
abcde4
的文本时,复制得到的文本是这样的:
abcde1
abc\r\nde2
abcde3
abcde4
而不是这样的:
abcde1
abc
de2
abcde3
abcde4
----------------------------------------------------------------------------------------------------
原文本中不是有\r\n吗?为什么readLine读到了不换行?而且通过自定义的myReaderLine方法也是这样。为什么?
|