java读取文件的几种方式性能比较
//普通输入流读取文件内容
public static long checksumInputStream(Path filename)
{
try(InputStream in= Files.newInputStream(filename))
{
CRC32 crc=new CRC32();
int c;
while ((c=in.read())!=-)
{
crc.update(c);
}
return crc.getValue();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return ;
}
} //带有缓冲读取文件
public static long checkSumBufferedInputStream(Path filename)
{
try(InputStream in=new BufferedInputStream(Files.newInputStream(filename)))
{
CRC32 crc=new CRC32();
int c;
while ((c=in.read())!=-)
{
crc.update(c);
}
return crc.getValue();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return ;
} //随机读取文件
public static long checksumRandomAccessFile(Path filename)
{
try(RandomAccessFile file=new RandomAccessFile(filename.toFile(), "r"))
{
long length=file.length();
CRC32 crc=new CRC32();
for (int i = ; i < length; i++) {
file.seek(i);
int c=file.readByte();
crc.update(c);
}
return crc.getValue();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return ;
} //通过磁盘映射读取文件
public static long checksumMappedFile(Path filename)
{
try(FileChannel channel=FileChannel.open(filename))
{
CRC32 crc=new CRC32();
int length=(int)channel.size();
MappedByteBuffer buffer= channel.map(FileChannel.MapMode.READ_ONLY, , length);
for (int i = ; i <length; i++)
{
int c=buffer.get(i);
crc.update(c);
}
return crc.getValue(); } catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return ;
}
普通输入流:68513ms
带缓冲的方式:116ms
随机访问读取:81203ms
磁盘映射读取方式:102ms
java读取文件的几种方式性能比较的更多相关文章
- Java读取文件的几种方式
package com.mesopotamia.test; import java.io.BufferedReader; import java.io.ByteArrayInputStream; im ...
- 【文件下载】Java下载文件的几种方式
[文件下载]Java下载文件的几种方式 摘自:https://www.cnblogs.com/sunny3096/p/8204291.html 1.以流的方式下载. public HttpServl ...
- 精通awk系列(3):铺垫知识:读取文件的几种方式
回到: Linux系列文章 Shell系列文章 Awk系列文章 读取文件的几种方式 读取文件有如下几种常见的方式: 下面使用Shell的read命令来演示前4种读取文件的方式(第五种按字节数读取的方式 ...
- java复制文件的4种方式
尽管Java提供了一个可以处理文件的IO操作类.但是没有一个复制文件的方法.复制文件是一个重要的操作,当你的程序必须处理很多文件相关的时候.然而有几种方法可以进行Java文件复制操作,下面列举出4中最 ...
- Java读写文件的几种方式
自工作以后好久没有整理Java的基础知识了.趁有时间,整理一下Java文件操作的几种方式.无论哪种编程语言,文件读写操作时避免不了的一件事情,Java也不例外.Java读写文件一般是通过字节.字符和行 ...
- [JAVA]java复制文件的4种方式
尽管Java提供了一个可以处理文件的IO操作类. 但是没有一个复制文件的方法. 复制文件是一个重要的操作,当你的程序必须处理很多文件相关的时候. 然而有几种方法可以进行Java文件复制操作,下面列举出 ...
- java 下载文件的两种方式和java文件的上传
一:以网络的方式下载文件 try { // path是指欲下载的文件的路径. File file = new File(path); // 以流的形式下载文件. InputStream fis = n ...
- java 读取文件内容 三种形式及效率对比
IOUtils.getStringFromReader() 读取方式为最快的 InputStream in = null; String line = ""; long start ...
- java追加文件的几种方式
import java.io.BufferedWriter; import java.io.FileOutputStream; import java.io.FileWriter; import ja ...
随机推荐
- QCamera检测摄像头
The QCamera class provides interface for system camera devices. More... Header: #include <QCamera ...
- Spring cloud微服务安全实战-5-3后端服务改造
本节来实现一个登陆的效果. 需要一个登陆前的页面和登陆后的页面. 直接粘贴过来的代码 这是一个和后台的绑定 后台要有个autenticated的对象来实现绑定,ts内我们定义这个autenticate ...
- Windows下安装RabbitMQ3.6.5
1.安装erlang 网址:http://www.erlang.org/ 下载exe文件安装即可 2.安装RabbitmQ 下载地址:http://www.rabbitmq.com/download. ...
- linux下配置face_recognition
1.如linux下已有python2.7,但需要更新一下python 2.7至python2.x sudo add-apt-repository ppa:fkrull/deadsnakes-pytho ...
- 石子合并 区间DP模板题
题目链接:https://vjudge.net/problem/51Nod-1021 题意 N堆石子摆成一条线.现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石 ...
- jquery img src赋值
不用Jquery时:document.getElementById("imageId").src = "xxxx.jpg"; 用Jquery时:$(" ...
- 页面进行ajax时 显示一个中间浮动loading
先发效果图,加载东西的时候如果没有设计或者其它提示会降低用户体验,所以写了个简单的loading弹层. 适用于触屏和pc页面. /* 页面进行ajax时 显示一个中间浮动loading @auther ...
- java设计模式(一)——单例模式
1.基本介绍 单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供-一个取得其对象实例的方法(静态方法).如:一般情况下,数据库的连接 2.创建方式: ...
- 利用sourceinsight宏(Quicker.em)提高编码效率和质量
利用sourceinsight宏(Quicker.em)提高编码效率和质量Marco是sourceinsight软件一个强大的功能,用户可以通过编写宏来实现自定义功能.这里有个比较流行的宏文件quic ...
- 2019暑期北航培训—预培训作业-IDE的安装与初步使用(Visual Studio版)
这个作业属于那个课程 2019北航软件工程暑期师资培训 这个作业要求在哪里 预培训-IDE的安装与初步使用(Visual Studio版) 我在这个课程的目标是 提高自身实际项目实践能力,掌握帮助学生 ...