当前位置:编程学习 > JAVA >>

BufferedWriter写入文件不换行问题

我用BufferedReader的readLine()方法读一文件,再用BufferedWriter写入另外一个文件,写入成功后,所有的文字全部显示在了一行,原来的文件中的文字是有换行的,请问怎么解决。
package io;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class TestBufferedWriter {

public static void main(String[] args) {
BufferedWriter bw = null;
BufferedReader br = null;
String result = null;
try {
bw = new BufferedWriter(new FileWriter("E:/workSpace/myEclipse/javaReview/src/io/Hello.txt"));
br = new BufferedReader(new FileReader("E:/workSpace/myEclipse/javaReview/src/io/TestBufferedWriter.java"));
while((result = br.readLine())!= null){
bw.write(result);
}
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
if(br != null){
br.close();
}
if(bw != null){
bw.flush();
bw.close();
}
} catch (IOException e) {
System.out.println("流关闭异常");
e.printStackTrace();
}
}
}
} --------------------编程问答-------------------- 你用readLine所取回来的结果,已经智能的把换行给去掉了。所以写入新的文件就没有换行了。

你可以bw.write(result);bw.write("\n");


不过,文件复制操作,用Reader和Writer是不合适的。
一个是不安全,除了换行这种问题外,还有二进制数据无法解析为字符的问题;
另一个是效率低,毕竟它要做字符解析,还得识别你是不是换行啥的,白白浪费计算量。


建议直接用 FileInputStream 和 FileOutputStream,直接按流进行复制。 --------------------编程问答-------------------- 看出来了,楼主是在linux下写的。
不过读写文本文件用Reader、Writer好,其他用字节流。看到一个帖里这么说的。
新手握个爪 --------------------编程问答-------------------- writer 有个方法  Writer.newLine(); 可以换行写
补充:Java ,  J2ME
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,