文章详情页
JAVA中获取文件输入流跟内存占用的关系
浏览:236日期:2023-11-01 10:26:59
问题描述
java程序中获取一个文件的输入流,比如一个50M大小的文本文件的输入流,这个时候程序是已经将整个文件的已经加载到内存中了吗?已经在内存中占据了50M的空间吗? 还是说只有一个入口而已,需要循环取其中的内容的时候,才一点一点加载文件的内容?
问题解答
回答1:并不是整个加载到内存中,但是可以通过缓冲区的方式将部分字节加载到缓存不是整个加载到内存中,但是可以通过缓冲区的方式将部分字节加载到缓存
回答2:仅仅是打开输入流,而没有进行读取的话,文件是没有占用内存的,只有读取了文件内容,才会相应的用掉内存,读多少用掉多少。
回答3:通过缓冲才能加载到内存中,操作系统里也是这样的。
标签:
java
相关文章:
1. MYSQL新建用户设置可以远程访问的问题2. python - 求一个在def中可以实现调用本def满足特定条件continue效果的方法(标题说不太清楚,请见题内描述)3. java - mybatis怎么实现在数据库中有就修改,没有就添加4. $fields = $values = [];这条代码一直定义不了,一直报错,老师的源码也是被报错的,执行不了,请问该怎么解决这个问题5. node.js - nodejs和前端JavaScript 字符串处理结果不一样是什么原因?6. mysql 为何insert的时候会有lock wait timeout 异常7. mysql - 我的myeclipse一直连显示数据库连接失败,不知道为什么8. mysql 5.7单表300万数据,性能严重下降,如何破?9. mysql同步数据到elasticsearch用什么工具?10. 数据库 - mysql 远程可以连接,但是本地连接拒绝?
排行榜
![$fields = $values = [];这条代码一直定义不了,一直报错,老师的源码也是被报错的,执行不了,请问该怎么解决这个问题](http://www.haobala.com/attached/image/news/202205/093622cb60.png)