java 读文件 nio_Java 使用 NIO 方式读文件

package com.ronsoft.books.nio.channels;

import java.nio.ByteBuffer;

import java.nio.channels.FileChannel;

import java.io.File;

import java.io.RandomAccessFile;

import java.io.IOException;

/**

* Create a file with holes in it.

*

* Created April 2002

* @author Ron Hitchens (ron@ronsoft.com)

* @version $Id: FileHole.java,v 1.2 2002/05/19 04:55:45 ron Exp $

*/

public class FileHole

{

public static void main (String [] argv)

throws IOException

{

// create a temp file, open for writing and get a FileChannel

File temp = File.createTempFile ("holy", null);

RandomAccessFile file = new RandomAccessFile (temp, "rw");

FileChannel channel = file.getChannel();

// create a working buffer

ByteBuffer byteBuffer = ByteBuffer.allocateDirect (100);

putData (0, byteBuffer, channel);

putData (5000000, byteBuffer, channel);

putData (50000, byteBuffer, channel);

// Size will report the largest position written, but

// there are two holes in this file. This file will

// not consume 5MB on disk (unless the filesystem is

// extremely brain-damaged).

System.out.println ("Wrote temp file '" + temp.getPath()

+ "', size=" + channel.size());

channel.close();

file.close();

}

private static void putData (int position, ByteBuffer buffer,

FileChannel channel)

throws IOException

{

String string = "*

buffer.clear();

buffer.put (string.getBytes ("US-ASCII"));

buffer.flip();

channel.position (position);

channel.write (buffer);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值