黑马程序员技术交流社区
标题:
关于输入和输出流的调用,同学们帮我看看哪里出问题了
[打印本页]
作者:
王海龙
时间:
2012-12-22 12:57
标题:
关于输入和输出流的调用,同学们帮我看看哪里出问题了
public static void main(String[] args) throws IOException {
FileWriter fw = new FileWriter("c:/s1.txt");
BufferedWriter bw = new BufferedWriter(fw);
FileReader fr = new FileReader("c:/s1.txt");
BufferedReader br = new BufferedReader(fr);
FileWriter fw2 = new FileWriter("c:/s2.txt");
BufferedWriter bw2 = new BufferedWriter(fw);
bw.write("明月几时有,把酒问青天。");
//尝试将这一句改为 bw.write("明月几时有,把酒问青天。\n");
//却没有实现换行,为什么?
bw.newLine();
bw.write("不知天上宫阙,今夕是何年。");
System.out.println("Copying in progress......");
while(br.ready()){
bw2.write(br.readLine());
}
//通过上面的循环,本意是将s1.txt中的文字复制到s2.txt中的,结果,发现s2文件为空!!
//经过调试发现,原来br.readline()竟然为null!!为什么??
System.out.println("Success!");
bw.close();
fw.close();
fr.close();
br.close();
bw2.close();
fw2.close();
}
复制代码
作者:
种生祥
时间:
2012-12-22 13:30
//
在这里要对写入的东西进行刷新因为它还在缓冲区,并没有写入到txt文件中,所以readLine为null
bw.flush();//
加上这句就好了
while(br.ready()){
bw2.write(br.readLine());
}
作者:
王进亮
时间:
2012-12-22 14:19
java的换行符是\r\n”;Unix系统里,每行结尾只有“<换行>”,即“\n”;Windows系统里面,每行结尾是“<换行><回 车>”,即“\r\n”;
readLine为null是因为数还在缓冲区里面,要进行刷新才行。close虽然也进行刷新,但是在关闭前,所以s1.txt中有数据。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2