inputStream:3199121536 duration:43084
bufferedInputStream:3199121536 duration:148
randomAccessFile:3199121536 duration:38037
fileMemoryMap:3199121536 duration:147
发现带缓存的输入流和文件内存映射这两种方式是最快的。
一、FileInputStream(文件输入流)
FileInputStream是InputStream的子类被称为文件输入流,是从文件流中读取数据。每次都从硬盘中读取,读取速度缓慢。
完整读取FileInputStream的所有字节共有俩种方式:(1)逐个字节读取;(2)批量读取。
代码如下:
import java.io.FileInputStream;
import jav
1.按照字节读取
public String readFileByByte(String filePath){
long beginTime =System.currentTimeMillis();
StringBuffer stringBuffer=new StringBuffer();
byte[] buffer=new byte[2048];//现在一次读取2048字节,可以一次性读取文件的...
上一篇我们介绍了使用java写入到文件,不同io类速度差异较大,本篇我们将介绍从文件读取数据,速度的差异。
测试文件text01.txt,text02.txt,text03.txt, 文件大小均为85938KB, 测试代码:package com.win.sample;import java.io.BufferedInputStream;
import java.io.BufferedOutput
1. 使用 `FileInputStream` 类以字节的方式读取文件。
2. 使用 `BufferedReader` 在字符输入流上包装一个缓冲区,以行为单位读取文件。
3. 使用 `Scanner` 类以分隔符为标志读取文件。
4. 使用 `Files` 类的 `readAllLines` 方法一次性读取所有行。
5. 使用 `ObjectInputStream` 反序列化对象从文件中读取对象。
6. 使用 `FileChannel` 从文件中读取内容。
例如,下面是使用 `BufferedReader` 读取文件的例子:
BufferedReader reader = new BufferedReader(new FileReader("filename.txt"));
try {
String line = null;
while ((line = reader.readLine()) != null) {
// process the line
} finally {
reader.close();
MySQLNonTransientConnectionException: Could not create connection to database server 解决办法
15253