日期:2014-05-20  浏览次数:20712 次

关于IO流的小问题,我是新手,希望大家指点!
这个程序是将A文件和B文件的内容合并到C文件。
都是txt文件,
HTML code
A的内容:
这
是
一
个
B文件的内容:
java
练习

可是合并后,C文件的内容就是一行“这是一个java练习”,为什么没有换行呢?
我刚开始学IO,老手能否指点一下,谢谢!!

下面是代码:
Java code
import java.io.*;

public class Combine {

    public static void main(String[] args) {
        String[] name = new String[2];
        String nameC = null;
        System.out.println("About this program:这个程序可以将您输入的两个文件A与B合并成C");
        System.out.println("请输入您想合并两个文件名(加上后缀),每个文件名以回车确认:");
        BufferedReader getInput = new BufferedReader(new InputStreamReader(
                System.in));
        BufferedReader bufferedR = null;
        BufferedWriter bufferedW = null;
        File[] file = new File[2];
        try {
            for (int i = 0; i < 2; i++) {
                name[i] = getInput.readLine();
                file[i] = new File(name[i]);
            }
            nameC = name[0].substring(0, name[1].indexOf(".")) + name[1];
            bufferedW = new BufferedWriter(new FileWriter(
                    new File(nameC)));
            String line;
            for (int i = 0; i < 2; i++) {
                bufferedR = new BufferedReader(new FileReader(file[i]));
                while ((line = bufferedR.readLine()) != null) {
                    bufferedW.write(line + "\n");
                    System.out.println("next");
                    getInput.read();
                }
            }
            System.out.println("合并成功!");
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                getInput.close();
                bufferedR.close();
                bufferedW.close();
            } catch (Exception e) {
                System.out.println("Wrong when close the stream.");
            }
        }
    }

}



------解决方案--------------------
bufferedW.write(line + "\n");
楼主只加了换行,你把回车加上试试。
 bufferedW.write(line + "\r\n");



------解决方案--------------------
在c文件中 是不是有黑色杠杠 如果有 那就代表了换行了, 只是在txt 文件中表现形式不一样而已
------解决方案--------------------
学习学习
------解决方案--------------------
楼主方便的话,把三个文件发给我:
nmyangym@126.com

------解决方案--------------------
应该是A,B2个文件的字符编码不一样吧。
------解决方案--------------------
B.txt 文件有问题,前三个字节"EF BB BF",连接到ab.txt后,也是这样. 
建议删除b.txt,再建一个吧。
另外看连接的文件,还是没有回车。("0D").你看是否写入文件时 加了"\r".