Java 使用 NIO 方式读文件
2018-07-20 来源:open-open
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. * */ 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 = "*<-- location " + position; buffer.clear(); buffer.put (string.getBytes ("US-ASCII")); buffer.flip(); channel.position (position); channel.write (buffer); } }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
最新资讯
热门推荐