1
TtiGeR 2017 年 6 月 25 日 via iPhone
|
2
misaka19000 2017 年 6 月 25 日 via Android
用 c 写过 native 方法然后 Java 调呗
|
3
SoloCompany 2017 年 6 月 25 日
想听一下楼主的高见,j2se 的 file.length 方法存在什么效率问题?以及有什么可以越过 jni 访问系统调用的方法?
|
5
gogohigh 2017 年 6 月 25 日 unix 系统下的 HotSpot 实现有四种方式获取文件大小,
File 的 length 是通用方法,底层直接调用 stat。 FileChannel 的 size 使用 stat 或 ioctl。 FileInputStream 的 channel size 和 URL 的 available 也能一次性获得 Integer.MAX_VALUE 字节以下文件的大小,底层也是 stat。 底层调用都一样,当然直接调用的最快了。 另外,多次读取时操作系统会使用缓存,要是想跑 benchmark,注意每次跑前清缓存。 |