关于java控制台的“非顺序输出”,关于控制台缓冲区。

     今天在将网络爬虫爬下来的微博数据通过java控制台输出的时候,无意中发现好像数据与原txt文件中的内容不太匹配,让人感觉原本顺序读取的文件是乱序输出的。



    原txt文件前几条数据:关于java控制台的“非顺序输出”,关于控制台缓冲区。




     控制台输出前几条数据:关于java控制台的“非顺序输出”,关于控制台缓冲区。

    个人觉得很纳闷,问了几个对java很感兴趣的同学,却都没有能够从实质上回答我的疑问。有人说是java自动创建的多线程,也有人说是控制台自己出错了(设置断点调试的时候是按顺序一条一条输出,但把断点去掉就“乱序”了),开始我也怀疑是程序的问题,后来我无意中在eclipse中发现了这样一个设置:控制台缓冲区大小。



    这时我才意识到,我想要显示的记录其实都已经在控制台显示了,但是由于控制台缓冲区容量不足以装下整个文件记录,导致在缓冲区满了的时候直接刷新,显示余下的数据记录。于是我就把缓冲区扩大,再次运行就“顺序”显示了。



    更改控制台缓冲区:在eclipse中,在Preferences-〉Run/Debug-〉Console里边,设置一下buffer size的设定值。如图:关于java控制台的“非顺序输出”,关于控制台缓冲区。

      


       如果我的理解有误,请各位大佬不吝赐教。合抱之木,生于毫末。