0

我正在将两个文本文件分别与123456它们abcdefg自己的行合并。我遇到的现象是23456abcde在同一行上创建的文件,因此与我在此处键入的完全一样。

我的问题是

  1. 为什么没有1从第一个文件写入
  2. 他们为什么不在自己的路线上。
  3. 为什么不写'fg'。(七行文本数据,但只有六次写入,因为七次写入将输出“23456”而根本没有字母数字字母)。

.

public static String mergeRecords(String in1, String in2, String out) {
    BufferedReader br1 = null;
    BufferedReader br2 = null;
    BufferedWriter bw1 = null;

    try{
        FileReader fr1 = new FileReader(in1);
        FileReader fr2 = new FileReader(in2);
        br1 = new BufferedReader(fr1);
        br2 = new BufferedReader(fr2);
        bw1 = new BufferedWriter(new FileWriter(out));
        ////File Writing
        while(!(br1.readLine()==null)||(br2.readLine()==null)){
            //alternating between the two filles
            if((f%2)==0){
                bw1.write(br1.read());
                bw1.write(br1.readLine());
                bw1.write(br1.readLine());
                bw1.write(br1.readLine());
                bw1.write(br1.readLine());
                bw1.write(br1.readLine());
            }
            else{
                bw1.write(br2.read());
                bw1.write(br2.readLine());
                bw1.write(br2.readLine());
                bw1.write(br2.readLine());
                bw1.write(br2.readLine());
                bw1.write(br2.readLine());
            }
            /////
            //File ALternator Value
            f++;
        }
        bw1.close();
    }
    catch(IOException iox){
    }
    return "'mergeRecords' not yet implemented";
}
4

1 回答 1

4

问题是:

        while(!(br1.readLine()==null)||(br2.readLine()==null)){

消耗 br1 的第一行。它不会评估第二个语句,因为第一个语句已经为真。你从来没有对那条线做任何事情,所以它丢失了。

于 2012-12-09T06:54:51.590 回答