2017-08-17 8 views
0

こんにちはStackOverflowの人々、読書ライン一貫していない

、および私はBufferedReaderに分割してパイプごとに(|)検索しています。私はこのファイルを毎日実行するためにQuartzも使用しています。私はそれをテストするときに毎分石英の仕事を設定するので、毎分ファイルを実際に読んでいればそれをテストすることができます。これを使用してチェックすることによって、テキストファイル内のすべての行を読み取ります。

BufferedReader reader = new BufferedReader((newInputStreamReader(inputStream)); 
String line = null; 
int counter = 0; 
while((line = reader.readLine()) != null){ 
    counter++; 
} 
System.out.println(counter); 

しかし、私はStringを分割する際、4451レコードを検索した結果が矛盾しています。場合によっては、1000+〜2000+のレコードしか取得しない場合がありますが、いつかは4451が取得されますが、一貫して取得されることはありません。これは私のコードです。

文字列の分割と同時にリードファイルの反復が原因である可能性がありますか?

編集: 状況に例外は発生していません。それは、counter変数を使用しての長さだけを表示します。

私の予想される出力はです。テキストファイルの1行につきすべてのレコードを取得し、行ごとに文字列をpipeで分割します。counterは、取り出された行の数です。

+1

多分あなたは例外を抑制しています。完全なtry/catchブロックを表示します。コンパイルエラーを修正します。 – shmosel

+0

こんにちは@shmosel、私は試していない/それをキャッチし、エラーは発生していません。 – msagala25

+0

どこかにtry/catchがなければなりません。投稿したコードに何も問題はありません。私たちが[mcve]のために頼むようにしないでください。 – shmosel

答えて

-1

パイプ区切り文字を"\\|"の代わりに"|"にする必要がありますか?私はあなたのコード内の任意の誤りを見つけられませんでしたが、私が書いたコードが完全に正常に動作している

splitLine = line.split("|"); // Splitting the line using '|' Delimiter 
+0

いいえ、 'split()'は正規表現を受け入れます。 – shmosel

+0

@shadowあなたの答えは間違っています。ここで確認してください:https://stackoverflow.com/questions/10796160/splitting-a-java-string-by-the-pipe-symbol-using-split – Tavo

0

はにあなたのコードを変更してみてください。ここにコードがあります

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

class Test { 
    public static void main(String[] args) { 
     FileReader inputStream = null; 
     BufferedReader reader = null; 
     try { 
      inputStream = new FileReader("Input.txt"); 
      reader = new BufferedReader(inputStream); 
      String line = null; 
      int counter = 0; 
      String[] splitLine = null; 
      while ((line = reader.readLine()) != null) { 
       splitLine = line.split("\\|"); 
       for (String temp : splitLine) { 
        System.out.println(temp); 
       } 
       counter++; 
      } 
      System.out.println(counter); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } finally { 
      try { 
       reader.close(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 
} 
関連する問題