Eclipse控制台输出限制

时间:2013-12-27 11:19:03

标签: java serialization bufferedreader

我正在使用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。有人能告诉我我做错了什么吗?如果有更好的解决方案,那么我就是耳朵。我使用这些数据将它们转换为玩家的统计数据。

1 个答案:

答案 0 :(得分:0)

复杂的答案似乎是:

  1. 从文件中读取的代码工作正常。

  2. 如果您将从文件中读取的行存储在列表中,那么检查其中有多少行的最佳方法是检查列表的大小()。< / p>

  3. 不要向控制台打印大量信息(如1000多行,甚至100 + ......),因为这样的数量可能永远不会被任何人阅读。