读入相同的文件,会占用更多的内存吗? 假如FileInputStream 读入文件a,读五次,在内存中,会占用一个a文件大小的空间,还是占用5个文件大小的空间。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 什么叫读5次?你没理解流是什么吧?流只是一个通道,流的数据是存储到你建立的byte数组中的也就是一般说的缓冲区读写文件并不是说一次性把文件读到内存的,先找点基础的书看看吧 看你的buffer怎么弄的。如果覆盖就只一个内存区。如果每次都新开buffer就5个内存区 就是在一个函数中abc()中有FileInputStream 读入文件a,main()调用abc五次,那么在内存中,会占用5个文件大小的空间还是一个?请各位讲清楚,谢谢。 那就看abc()的返回值变量是否是同一个变量/地址如果缓冲区是一个则读在多次也只是重复覆盖n次如果连续调用多次,放到不同的变量中,那就是不同的空间 a在内存中只占用1个,main函数调用a则要开5个内存,不过当你读入完了a之后,内存就自动释放了,所以每一次都只占用一个,但每一次开的内存可能不同(都是新开的),所以我又说占有5个 就是在一个函数中abc()中有FileInputStream 读入文件a,main()调用abc五次,那么在内存中,会占用5个文件大小的空间还是一个? 看jvm怎么弄了,一般OS有文件缓存反正写java的总比我们聪明 It All Depends On Your Method!文件的内容不一定都在内存里边,如果文件很大,当心MemoryOutFlow!读入文件A,内存里边关于文件A的内容可以只是一个ByteArray bytes[1024]...读一点,就写一点吗,一次吃那么多,不太好消化的...全部读入有必要吗?如果文件A的大小为xM,不管读几次,内存里边一个byte[1024],足够用了 你打开多个FileInputStream并调用a方法的时候,FileInputStream自身只是占用非常小的内存空间如果你将读取出来的数据用数组等方法保存起来的时候,占用空间的是你的数组,FileInputStream本身并不占用大量空间所以你的问题的答案是:打开多个FileInputStream对象只会占用非常小的空间,但是你将数据读取出来才占用大量空间,至于占用一份还多份,看你自己写的代码决定 大家对读取文件时,由于文件过大造成内存溢出有概念吗? 我发了另外一个帖子:http://topic.csdn.net/u/20091225/14/ed282276-7646-4a36-86dc-f55d65a5ab79.html 本人女,请教IT发展方向 急急急!!求助!!见代码给分儿 java新手,之前写的socket的测试程序,可以连上,不知道现在就不可以了 【急】如何用java读取word文档 下面是一个函数体中的一部分,什么意思 又发现一个问题,有时出有时不出,在线等 java中怎样连续读取文件中的对象 简单,有分 jb7编译的linux无法在redhat8中运行,怎么回事?? 哪里有JAVA的编译器下载? 用最短的代码创建这个String??? 在idea中创建文件夹问题
你没理解流是什么吧?
流只是一个通道,流的数据是存储到你建立的byte数组中的
也就是一般说的缓冲区
读写文件并不是说一次性把文件读到内存的,先找点基础的书看看吧
如果缓冲区是一个则读在多次也只是重复覆盖n次
如果连续调用多次,放到不同的变量中,那就是不同的空间
反正写java的总比我们聪明
文件的内容不一定都在内存里边,如果文件很大,当心MemoryOutFlow!
读入文件A,内存里边关于文件A的内容可以只是一个ByteArray bytes[1024]...
读一点,就写一点吗,一次吃那么多,不太好消化的...
全部读入有必要吗?
如果文件A的大小为xM,不管读几次,内存里边一个byte[1024],足够用了
所以你的问题的答案是:打开多个FileInputStream对象只会占用非常小的空间,但是你将数据读取出来才占用大量空间,至于占用一份还多份,看你自己写的代码决定
我发了另外一个帖子:http://topic.csdn.net/u/20091225/14/ed282276-7646-4a36-86dc-f55d65a5ab79.html