Java读取没有行分隔符的文本行

时间:2012-04-23 18:28:02

标签: java file

为了处理searchlog文件我正在编写一个Java类,它应该逐行读取和处理文件内容。

日志文件中的文本如下所示

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

我尝试使用扫描仪并使用nextLine()读取行,但这会将整个文件作为一行读取。知道如何确保一次只能获得一行吗?

2 个答案:

答案 0 :(得分:3)

尝试使用BufferedReader代替ScannerBufferedReader可以容忍各种不同类型的行终止符 - Scanner可能总是期望你的平台默认行终止符。

或者,使用Guava可以让您轻松完成此操作,例如使用CharStreams.readLines,可能指定LineProcessor

答案 1 :(得分: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 );
}