1

検索ログファイルを処理するために、ファイルの内容を1行ずつ読み取って処理するJavaクラスを作成しています。

ログファイルのテキストは次のようになります

[Integer User ID] [Queury] [Date: YYYY-MM-DD HH:MM:SS] [optional url]

スキャナーを使用してnextLine()で行を読み取ろうとしましたが、これによりファイル全体が1行として読み取られます。一度に1行だけを取得するようにするにはどうすればよいですか?

4

2 に答える 2

3

BufferedReaderの代わりに使用してみてくださいScannerBufferedReaderは、さまざまなタイプのラインターミネータに耐性がありScannerます。プラットフォームのデフォルトのラインターミネータを常に期待している可能性があります。

または、Guavaを使用すると、これを非常に簡単に行うことができます。たとえば、を指定してCharStreams.readLines、を指定することもできますLineProcessor

于 2012-04-23T18:31:08.543 に答える
3

ファイル全体をそのまま取得して、データを分割することができます。

for ( String line : "the entire file".split( System.getProperty("line.separator") )
{
     System.out.println( line );
}

補足として:System.getProperty("line.separator")はユニバーサル改行文字です。

別の方法:

BufferedReader bufferedReader = new BufferedReader( new FileReader( "absolute file path" ) );

String line;

while ( ( line = bufferedReader.readLine() ) != null)
{
     System.out.println( line );
}
于 2012-04-23T18:31:44.980 に答える