2011-07-07 134 views
2

我有一个愚蠢的问题,但我不专业。我正在尝试在Java中创建日志读取器,它将从目录中读取日志。它必须识别错误,信息和警告。在这种情况下哪个解决方案最好(最快):使用BufferedReader的FileInputStream或使用BufferedReader的FileReader?或者也许别的东西。如何读取日志文件并解析Java中的条目?

+0

可能重复的[Web日志分析在Java](http://stackoverflow.com/questions/131176/web-log-analysis-in-java) –

+0

不是真的。 OP是要求从文件中读取最快的方法,而不是实时读取文件的方式。 – tskuzzy

回答

2
BufferedReader in = new BufferedReader(new FileReader("log.txt")); 
String line1 = in.readLine(); 

的速度与您所能得到的一样快。 BufferedReader缓冲您的输入,因此比简单地使用FileReader更快。如果您想知道,Scanner明显比BufferedReader要慢。

1

对于一个FileInputStream或的FileReader之间进行选择,这取决于您要使用什么 - 字节(的FileInputStream)或文本/字符 'A', 'B',......(的FileReader)。如果您将日志文件设置为纯文本格式,那么使用FileReader是有意义的。

请注意,FileReader使用一种编码,读取JavaDoc。