读取
package com.test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.text.MessageFormat;
public class TestFileChannel {
public static void main(String[] args) throws IOException {
FileInputStream fin = new FileInputStream("D:\\temp\\TestService.cs");
// 获取通道
FileChannel fc = fin.getChannel();
// 创建缓冲区
ByteBuffer buffer = ByteBuffer.allocate(1024);
// 读取数据到缓冲区
fc.read(buffer);
buffer.flip();
StringBuffer s=new StringBuffer();
while (buffer.remaining() > 0) {
byte b = buffer.get();
s.append((char)b);
//System.out.print(((char) b));
}
System.out.print(s);
fin.close();
}
}
View Code
写入
public class Test {
public static void main(String[] args) throws IOException {
File file = new File("data.txt");
FileOutputStream outputStream = new FileOutputStream(file);
FileChannel channel = outputStream.getChannel();
ByteBuffer buffer = ByteBuffer.allocate(1024);
String string = "java nio";
buffer.put(string.getBytes());
buffer.flip(); //此处必须要调用buffer的flip方法
channel.write(buffer);
channel.close();
outputStream.close();
}
}
View Code