java nio读取和写入文件

时间:2023-03-09 19:52:51
java nio读取和写入文件

读取

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(); }
}

写入

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();
}
}