2016-10-01 14 views
-4

各行が意味を持ちます(空の場合もあります).txtファイルを作成しました。スキャナのnext()メソッドとnextLine()メソッドは、空の行を認識せず、テキストを含む行に右にジャンプします。 私は、スキャナが内容に関係なくテキストのすべての行を考慮する方法があるのだろうかと思います。java.util.Scannerは空の行を読み取っていません

私は毎回非常に小さなトークンで作業しているので、私はBufferedReaderを使いたくありません。

static final String fileName = "temp.txt"; 
    try { 
      //System.out.println(Jsoup.connect(url).get()); 
      Document document = Jsoup.connect(url).get(); 
      FileWriter fileWriter = new FileWriter(fileName); 

      BufferedWriter bufferedWriter = new BufferedWriter(fileWriter); 

      Elements names = document.select("[id^=CZ]"); 
      for (Element name : names) { 
       bufferedWriter.write(name.text()); 
       bufferedWriter.write(System.lineSeparator() + System.lineSeparator()); 
       System.out.println(name.text() + '\n'); 
      } 
      bufferedWriter.close(); 
      Scanner in = new Scanner(new File(fileName)); 
      in.next(); 
      String s = names.first().text(); 
      String h = in.next(); 

      ... 

この時点で、ストリングs &hは等しいはずです。

ドキュメントスキャナは空行で始まるを読み取り、このように書きされています

asdkjasjkdajkdahkdjahdjadhkahdajkdajkdsasdkjasjkdajkdahkdjahdjadhkahdajkdajkdsasdkjasjkdajkdahkdjahdjadhkahdajkdajkdsasdkjasjkdajkdahkdjahdjadhkahdajkdajkdsasdkjasjkdajkdahkdjahdjadhkahdajkdajkdsasdkjasjkdajkdahkdjahdjadhkahdajkdajkdsasdkjasjkdajkdahkdjahdjadhkahdajkdajkdsasdkjasjkdajkdahkdjahdjadhkahdajkdajkdsasdkjasjkdajkdahkdjahdjadhkahdajkdajkdsasdkjasjkdajkdahkdjahdjadhkahdajkdajkdsasdkjasjkdajkdahkdjahdjadhkahdajkdajkdsasdkjasjkdajkdahkdjahdjadhkahdajkdajkds

また、最初の行が空の動的ファイルがあります。文字列を文字列hと比較すると、それらは等しくありません。 nextLine()およびnext()は、有効な要素である間に最初の行をスキップします。

+1

は[MCVE]リンクを読んでください、そして作成し、テキストファイルの小さな表現と一緒に、1投稿:

あなたはこれを試すことができます。 –

+1

これまでに何を試しましたか?あなたのコードを投稿してもよろしいですか? –

+0

再現できません:https://ideone.com/Q1Y25z – tkausl

答えて

0

nextLine()必要な方法です。 Unlinke next()、それは改行と空白を先にスキップしません。空行で入力に

実行し、この例(demo

Scanner sc = new Scanner(System.in); 
while (sc.hasNextLine()) { 
    String s = sc.nextLine(); 
    System.out.println("'"+s+"'"); 
} 

これらの行が保存されていることを確認し:

'quick brown' 
'' 
'fox jumps' 
'over' 
'' 
'the' 
'' 
'lazy dog' 
0

next()方法は、一方whitespaces又はnewline文字で区切られたトークンを読み出しnextLine()は、行をセパレーターnewlineチャーターで区切って読み取ります。

Scanner scan = new Scanner(file); 
while(scan.hasNextLine()){ 
    System.out.println(scan.nextLine()); 
} 
関連する問題