java 获取文件长度的几种方法的效率比较
来源:互联网 发布:wps office 有mac版吗? 编辑:程序博客网 时间:2024/04/30 09:34
刚才使用如下代码进行测试,得到了如下下的结果!!
import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.RandomAccessFile;import java.nio.channels.FileChannel;import java.nio.file.Path;import java.nio.file.Paths;/** * Created by yangjunlin on 8/14/15. */public class FileTest{ public static void main(String[] dd) { Path path = Paths.get("/home/yangjunlin/Downloads/ubuntu-14.04.2-desktop-amd64.iso"); System.out.println(path.getFileName()); long begin1 = System.nanoTime(); try (RandomAccessFile randomAccessFile = new RandomAccessFile(path.toFile(), "rw")) { System.out.println("RandomAccessFile length: " + randomAccessFile.length()); System.out.println("RandomAccessFile nanoTime: " + (System.nanoTime() - begin1)); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } long begin2 = System.nanoTime(); System.out.println("File length: " + path.toFile().length()); System.out.println("File nanoTime: " + (System.nanoTime() - begin2)); long begin3 = System.nanoTime(); try (FileInputStream fileInputStream = new FileInputStream(path.toFile())) { System.out.println("FileInputStream length: " + fileInputStream.available()); System.out.println("FileInputStream nanoTime: " + (System.nanoTime() - begin3)); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } long begin4 = System.nanoTime(); try (FileChannel fileChannel = new FileInputStream(path.toFile()).getChannel()) { System.out.println("FileChannel length: " + fileChannel.size()); System.out.println("FileChannel nanoTime: " + (System.nanoTime() - begin4)); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }}
结果如下:
ubuntu-14.04.2-desktop-amd64.iso
RandomAccessFile length: 1044381696
RandomAccessFile nanoTime: 449054
File length: 1044381696
File nanoTime: 80385
FileInputStream length: 1044381696
FileInputStream nanoTime: 108946
FileChannel length: 1044381696
FileChannel nanoTime: 3220354
装饰越多越慢呀。
在读超大文件的时候会有坑,见这里:http://blog.csdn.net/chaijunkun/article/details/22387305
0 0
- java 获取文件长度的几种方法的效率比较
- 线程同步的几种方法效率比较
- 测试代码执行效率的几种方法比较
- Java从控制台读取数据,输入流System.in的几种方法效率比较
- java的三种写文件方法的效率性能比较
- java的三种写文件方法的效率性能比较
- golang中获取字符串长度的几种方法
- java IO写入文件效率——几种方法比较
- java File文件路径获取的几种方法
- Java获取文件路径的几种方法
- java获取指定资源文件路径的几种方法
- 几种排序算法的效率比较
- 几种排序算法的效率比较
- 几种排序算法效率的比较
- 测试几种比较float的效率
- 几种排序算法效率的比较
- PHP遍历目录文件的几种方法效率评析
- java 键盘输入的几种方法比较
- JavaWeb项目目录结构
- ------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! ----
- Delphi打开外部程序或文件
- Leetcode -- Swap Nodes in Pairs
- 机房收费系统之神奇的“焦点”
- java 获取文件长度的几种方法的效率比较
- Android中父View和子view的点击事件
- iOS小白进阶之旅(二)
- Memcached深度分析
- 处理Xcode中编译的警告
- 锯木厂选址 斜率dp优化
- optim package
- 单件模式
- AltiumDesigner01——建立自己的集成库