当前位置:编程学习 > JAVA >>

请教一个面试题,据说是太保的。

【问   题】
一台10G内存的服务器如何解析30G的文件,同时把文件里面不同的数据统计出来。 面试题 --------------------编程问答-------------------- --------------------编程问答-------------------- 缓存到硬盘。 --------------------编程问答--------------------
引用 2 楼 u010684923 的回复:
缓存到硬盘。


没拉? --------------------编程问答-------------------- 应该是不一次性载入整个文件吧,一次只读取文件中的一部分读下一部分的时候关闭之前打开的部分。不过具体实现不太清楚 --------------------编程问答-------------------- 每次读取固定大小 --------------------编程问答--------------------
引用 3 楼 u011128470 的回复:
Quote: 引用 2 楼 u010684923 的回复:

缓存到硬盘。


没拉?

还要什么呀,数据都缓存出来了,那你不是想怎么用就怎么用了?还要啥?
至于什么把文件里面不同的数据统计出来?这不就是if()esle么? --------------------编程问答-------------------- 类似计算机系统中的虚拟内存,小内存怎么运行大程序。引用:我们都知道,虽然在运行速度上硬盘不如内存,但在容量上内存是无法与硬盘相提并论的。当运行一个程序需要大量数据、占用大量内存时,内存就会被“塞满”,并将那些暂时不用的数据放到硬盘中,而这些数据所占的空间就是虚拟内存 --------------------编程问答-------------------- 文件30G,但是30G的文件不会是一下子装载进去的。
对于30G的文件分批读,分批分析,内存保存分析结果就行了。
最后对分批分析的结果进行统计。 --------------------编程问答-------------------- --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 不懂,还有这样的面试题? --------------------编程问答-------------------- 感觉还是一点一点的读,一点一点的解析 --------------------编程问答-------------------- 读取文件跟内存没关系,考官可能是想考分块读取文件。
byte[] tempbytes = new byte[1000]; 
while ((byteread = in.read(tempbytes)) != -1){ 
System.out.write(tempbytes, 0, byteread); 
}
这样可以读取文件
补充:Java ,  Java EE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,