我正在使用BufferReader从游戏服务器读取日志文件。它确实有效,但它只是不读取整个文件的一小部分。
我的代码:
public ArrayList<String> readFile(File file){
try (BufferedReader br = new BufferedReader(new FileReader(file.getAbsolutePath())))
{
String sCurrentLine;
ArrayList<String> list = new ArrayList<String>();
while ((sCurrentLine = br.readLine()) != null) {
list.add(sCurrentLine);
}
return list;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
我尝试读取的文件大小介于0.5 MB - 1.5 MB之间。服务器日志看起来像这样,但它有更多行。像20000线。我只得到了1500行。
00:05:29 - Great_Zhupan_Uros_SRB <img=ico_spear> Wolfpack_SikiciArthasan
00:05:32 - Teamhit: AE_Shemaforash hit AB_Artorius for 10 hp.
00:05:32 - AE_Shemaforash <img=ico_axeone> AB_Artorius
00:05:32 - AE_Shemaforash(20578) teamkilled AB_Artorius(1076080).
00:05:41 - Great_Zhupan_Uros_SRB <img=ico_spear> IR_Fall3N~3nG3l
00:05:46 - AE_Shemaforash <img=ico_axeone> Xodanrot
00:06:05 - *DEAD* [AE_Blivandefar] xxxxxxxxxxxxxxxx
00:06:05 - Wolfpack_Dennell has joined the game with ID: 1305305
00:06:07 - Wolfpack_Dennell joined the server.
日志文件的开始时间为00:00:00,结束时间为23:59:59。当我开始阅读它时,它只读取它的一小部分,如从22:08:00到23:59:59。有人能告诉我我做错了什么吗?如果有更好的解决方案,那么我就是耳朵。我使用这些数据将它们转换为玩家的统计数据。
答案 0 :(得分:0)
复杂的答案似乎是:
从文件中读取的代码工作正常。
如果您将从文件中读取的行存储在列表中,那么检查其中有多少行的最佳方法是检查列表的大小()。< / p>
不要向控制台打印大量信息(如1000多行,甚至100 + ......),因为这样的数量可能永远不会被任何人阅读。