2011-06-18 14 views
2

私はこれをやり方を研究していて、ちょっと混乱してしまいましたが、私はこれまでスキャナを使ってみましたが、改行を保存していないように見えます。ブレーク。誰かアドバイスがあれば感謝します。私は以下のようにScannerクラスを使用していますが、行が新しい行であるかどうかをチェックする方法もわかりません。あなただけのファイルを読み込むしようとしている場合には感謝Javaがテキストファイルを解析して改行を保持していますか?

for (String fileName : f.list()) { 

      fileCount++; 

      Scanner sc = new Scanner(new File(f, fileName)); 
      int count = 0; 
      String outputFileText = ""; 

      //System.out.println(fileCount); 

      String text=""; 
      while (sc.hasNext()) { 

       String line = sc.nextLine(); 
      } 
} 
+1

ラインが新しいラインであることを正確にチェックすることはどういう意味ですか? Scanner.nextLine()はすでにファイルをあなたのために分割していますので、値を見つけるために得意な行をスキャンするだけです。 – donnyton

+0

BufferedWriterを使用している場合は、.newlineメソッドを使用することもできます: http://stackoverflow.com/questions/9199216/strings-written-to-file-do-not-preserve-line-breaks –

答えて

2

、私の代わりにLineNumberReaderを使用して示唆されます。

LineNumberReader lnr = new LineNumberReader(new FileReader(f)); 
String line = ""; 
while(line != null){ 
    line = lnr.readLine(); 
    if(line==null){break;} 
    /* do stuff */ 
} 
+0

私はそれを1行ずつ読む必要があります。そして、私はチェックする行でいくつかのことをやっています。 (正規表現を使用して)値のために..ありがとう私は 'LineNumberReader'を見ていきます。 – Rick

+0

チャックが指摘するように、スーパークラス' BufferedReader'は同様の機能を提供します。 (私はエラーメッセージを作成する必要がある場合、私が何をしているか知っているだけです) – Darien

+0

改行文字(例えば '\ n')を受け取った場合、出力文字列に渡すことができます作成? – Rick

0

おそらくBufferedReader#readLineを使用します。

+0

BufferedReader#readLineのJavadocは、改行文字が削除されていることを示します。 –

1

JavaのScannerクラスは、行が空のStringであっても、あなたのためにすでにそれを行に分割しています。

Scanner lineScanner; 
while(sc.hasNext()) 
{ 
    String nextInputLine = sc.nextLine(); 

    lineScanner = new Scanner(nextInputLine); 

    while(lineScanner.hasNext()) 
    { 
     //read the values 
    } 
} 
関連する問題