首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文件大小缓存& Java中文件大小的有效检索

文件大小缓存& Java中文件大小的有效检索
EN

Stack Overflow用户
提问于 2011-05-04 21:17:29
回答 4查看 1.1K关注 0票数 1

我需要确定一个非常大的字符编码文件的大小。读取文件需要大量的时间。

我的理解是,当文件第一次创建/修改时,大小会被缓存,因此当文件管理器请求大小时,操作系统可以快速检索该值。(例如,在win资源管理器中打开一个大文件的属性对话框似乎很快)

假设上述情况属实,那么在Java中可以检索到吗?我原以为length()会读取文件来确定size...or,它是否真的获得了这个缓存大小?还是在创建File对象时读取/检索缓存大小?

到目前为止,我自己的研究还不能回答这些问题。

如果你能帮我理解一下我会很感激

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-05-04 21:32:36

文件系统通常将长度存储为文件描述的一部分。这样,操作系统就知道文件的结尾在哪里。此信息在被访问时被缓存。并且对此信息的重复调用也将被缓存。

注意:操作系统通常会从磁盘读取比您要求的更多的数据。这是因为访问磁盘比较昂贵,而内存相对较便宜。例如,当你得到一个文件的长度时,它可能会读取许多文件的细节,假设你可能也想要关于这些文件的信息。例如,当你第一次获得一个文件的信息时,它很可能已经被缓存了。

票数 5
EN

Stack Overflow用户

发布于 2011-05-04 21:22:38

getLength()委托底层的本机操作系统函数获取文件的长度。使用这个应该没问题。

票数 5
EN

Stack Overflow用户

发布于 2011-05-04 21:23:18

length()方法不读取文件。它调用一个本机方法,该方法委托操作系统获取文件长度。它的响应时间不应该依赖于实际的文件长度。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5884035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档