簡體   English   中英

BufferedWriter不寫第一行文本

[英]BufferedWriter not Writing First Line of Text

我將兩個文本文件分別與123456abcdefg合並在一起。 我遇到的現象是在同一行上創建的文件為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";
}

問題是:

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

消耗br1的第一行。 它不會評估第二條語句,因為第一條已經是正確的。 您永遠不會對那條線做任何事情,所以就迷路了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM