Java NIO读写文件

Java NIO读写文件

1.读文件
package com.alibaba.bizworks.ubcp.cportal.promotion.nio;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;

/**
 * @author gf
 * @date 2022/7/1
 */
public class FileChanelRead {
    public static void main(String[] args)throws IOException {
        // 从本地读取一个文件
        File file = new File("d:\\text\\南方姑娘.txt");
        FileInputStream fileInputStream = new FileInputStream(file);
        // 获取文件相应的channel,channel中会有相关数据
        FileChannel channel = fileInputStream.getChannel();
        ByteBuffer buffer = ByteBuffer.allocate((int)file.length());
        // 将channel的数据读取到buffer
        channel.read(buffer);
        System.out.println(buffer);
        System.out.print("南方姑娘歌词"+new String(buffer.array()));
        fileInputStream.close();

    }
}

运行结果:
在这里插入图片描述

2 写文件
package com.alibaba.bizworks.ubcp.cportal.promotion.nio;

import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;

/**
 * @author gf
 * @date 2022/7/1
 */
public class FileChanelWrite {
    public static void main(String[] args)throws IOException {

        // 要写入的数据
        String text= "我的南方姑娘要跑了";
        // 创建fileChanel
        RandomAccessFile aFile = new RandomAccessFile("d:\\text\\南方姑娘跑到这里来了.txt", "rw");
        FileChannel inChannel = aFile.getChannel();
        // 创建buffer
        ByteBuffer buf = ByteBuffer.allocate(48);
        buf.clear();
        buf.put(text.getBytes());
        buf.flip();
        while(buf.hasRemaining()) {
            inChannel.write(buf);
        }
        inChannel.close();
    }
}

运行结果:
在这里插入图片描述
##TODO未完待续

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值