今天在学习BufferedReader类时遇到了:用readLine()方法拷贝时,将换行符丢失的情况。代码如下:
package MyNet;
import java.io.*;
public class TstUIO
{
/**
* @param args
*/
public static void main(String[] args)
{
// TODO Auto-generated method stub
String socStr = "D:/mytest/myTst.txt";
String desStr = "D:/mytest/myTst1.txt";
String objStr = "D:/mytest/test.txt";
FileReader fr;
FileWriter fw;
FileReader fo;
BufferedReader br;
BufferedWriter bw;
System.out.println("/nNow clone socStr to desStr/n");
try
{
fr = new FileReader(socStr);
fw = new FileWriter(desStr);
char tmBuf[] = new char[1024];
fr.read(tmBuf);
fw.write(tmBuf);
fr.close();
fw.close();
System.out.println("/nNow read desStr/n");
fr = new FileReader(desStr);
int i= fr.read();
while(i!=-1)
{
System.out.print((char)i);
i= fr.read();
}
fr.close();
System.out.println("/nNow clone desStr to objStr /n");
fr = new FileReader(desStr);
fw = new FileWriter(objStr);
br = new BufferedReader(fr);
bw = new BufferedWriter(fw);
String tms;
while((tms=br.readLine())!= null)
{
bw.write(tms);
bw.newLine(); //如果不加该行,拷贝后的文件与原文件内容一样,但排版不一样
}
bw.close();
br.close();
fw.close();
fr.close();
System.out.println("/nNow read objStr!/n");
fr = new FileReader(objStr);
br = new BufferedReader(fr);
String tm;
while((tm=br.readLine())!=null)
{
System.out.println(tm);
}
fr.close();
br.close();
}
catch (Exception e)
{
e.printStackTrace();
}
} //end main()
} //end public class