package com.yu.nio; import java.io.FileNotFoundException; import java.io.IOException; import java.io.RandomAccessFile; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; public class FileChannelDemo { public static void readFile(String path) { try { //1.创建Filechannel RandomAccessFile rFile = new RandomAccessFile(path, "rw"); FileChannel channel = rFile.getChannel(); //2.创建缓冲区 ByteBuffer buffer = ByteBuffer.allocate(1024); //3.读取数据 int byteread = channel.read(buffer); while (byteread != -1) { System.out.println("读取了数据" + byteread); buffer.flip(); while (buffer.hasRemaining()) { System.out.println((char) buffer.get()); } buffer.clear(); byteread = channel.read(buffer); } //4.关闭FileChannel channel.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public static void writeFile(String path){ try { RandomAccessFile rw = new RandomAccessFile(path, "rw"); FileChannel channel = rw.getChannel(); ByteBuffer buffer = ByteBuffer.allocate(1024); buffer.clear(); String str="写入文件的数据"; buffer.put(str.getBytes()); buffer.flip(); while(buffer.hasRemaining()){ channel.write(buffer); } channel.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { String path1 = "E:\\1.txt"; readFile(path1); String path2="E:\\2.txt"; writeFile(path2); } }
java 中nio包的FileChannel,DatagramChannel,SocketChannel,ServerSocketChannel类编程
最新推荐文章于 2024-07-15 21:15:00 发布