java nio读取和写入文件

Posted 甜菜波波

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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();


    }
}
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

 

以上是关于java nio读取和写入文件的主要内容,如果未能解决你的问题,请参考以下文章

Java NIO 读取文件写入文件读取写入混合

nio实现文件读取写入数据库或文件

Java NIO 实现文件复制

Java-NIO:Channel聚集(gather)写入与分散(scatter)读取

Java NIO学习笔记 三 散点/收集 和频道转换

JAVA I/O文件NIO