Java读取文件 利用MappedByteBuffer进行缓冲
2012-10-12 13:32
579 查看
Java读取文件 利用MappedByteBuffer进行缓冲,这样可以保证边读取大文件,边进行处理
package sean; import java.io.ByteArrayInputStream; import java.io.File; import java.io.RandomAccessFile; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; import java.util.Scanner; public class Snippet { public void readResource() { long fileLength = 0; final int BUFFER_SIZE = 0x300000;// 3M的缓冲 //for (String fileDirectory : this.readResourceDirectory())// 得到文件存放路径,我这里使用了一个方法从XML文件中读出文件的 // 存放路径,当然也可以用绝对路径来代替这里的fileDriectory //{ File file = new File("D:\\MyData.txt"); fileLength = file.length(); try { MappedByteBuffer inputBuffer = new RandomAccessFile(file, "r") .getChannel().map(FileChannel.MapMode.READ_ONLY, 0, fileLength);// 读取大文件 byte[] dst = new byte[BUFFER_SIZE];// 每次读出3M的内容 for (int offset = 0; offset < fileLength; offset += BUFFER_SIZE) { if (fileLength - offset >= BUFFER_SIZE) { for (int i = 0; i < BUFFER_SIZE; i++) dst[i] = inputBuffer.get(offset + i); } else { for (int i = 0; i < fileLength - offset; i++) dst[i] = inputBuffer.get(offset + i); } // 将得到的3M内容给Scanner,这里的XXX是指Scanner解析的分隔符 Scanner scan = new Scanner(new ByteArrayInputStream(dst)) .useDelimiter(" "); while (scan.hasNext()) { // 这里为对读取文本解析的方法 System.out.print(scan.next() + " "); } scan.close(); } } catch (Exception e) { e.printStackTrace(); } //} } public static void main(String[] args) { Snippet sp = new Snippet(); sp.readResource(); } }
相关文章推荐
- Java读取文件 利用MappedByteBuffer进行缓冲
- java、mappedByteBuffer读取文件
- 使用MappedByteBuffer(映射文件)对excel表格进行随机定位和读取
- java大文件读写操作,java nio 之MappedByteBuffer,高效文件/内存映射
- java大文件读写操作,java nio 之MappedByteBuffer,高效文件/内存映射
- 使用MappedByteBuffer读取大文件(1G以上)和释放MappedByteBuffer的资源
- JAVA读取XML文件并利用该文件对数据库进行配置操作
- 用MappedByteBuffer进行特大文件拷贝分割
- 【JavaNIO的深入研究4】内存映射文件I/O,大文件读写操作,Java nio之MappedByteBuffer,高效文件/内存映射
- RandomAcessFile、MappedByteBuffer和缓冲读/写文件
- RandomAcessFile、MappedByteBuffer和缓冲读/写文件
- MappedByteBuffer 与 普通的文件读取方式内存占用对比测试
- JAVA读取XML文件并利用该文件对数据库进行配置操作
- 【JavaNIO的深入研究4】内存映射文件I/O,大文件读写操作,Java nio之MappedByteBuffer,高效文件/内存映射
- java nio 之MappedByteBuffer,高效文件/内存映射
- java nio 之MappedByteBuffer,高效文件/内存映射
- java大文件读写操作,java nio 之MappedByteBuffer,高效文件/内存映射
- Java NIO之MappedByteBuffer,高效文件内存映射
- RandomAcessFile、MappedByteBuffer和缓冲读/写文件
- Java使用ByteBuffer读取大文件