扫描二维码下载沐宇APP

沐宇

微信扫码使用沐宇小程序

沐宇

鎬庝箞浣跨敤filechannel璇诲彇鏂囦欢

扬州沐宇科技
2023-10-23 11:57:13

瑕佷娇鐢‵ileChannel璇诲彇鏂囦欢锛屽彲浠ユ寜鐓т互涓嬫楠よ繘琛屾搷浣滐細

  1. 鎵撳紑涓€涓枃浠禖hannel锛屽彲浠ヤ娇鐢?code>FileInputStream鎴?code>RandomAccessFile鏉ュ垱寤轰竴涓狥ileChannel瀵硅薄銆傜ず渚嬩唬鐮佸涓嬶細
FileChannel channel = FileChannel.open(Paths.get("鏂囦欢璺緞"), StandardOpenOption.READ);
  1. 鍒涘缓涓€涓狟yteBuffer瀵硅薄鏉ユ帴鏀惰鍙栫殑鏁版嵁銆傜ず渚嬩唬鐮佸涓嬶細
ByteBuffer buffer = ByteBuffer.allocate(1024);
  1. 浣跨敤FileChannel鐨?code>read()鏂规硶灏嗘暟鎹粠鏂囦欢Channel璇诲叆鍒癇yteBuffer涓€傜ず渚嬩唬鐮佸涓嬶細
int bytesRead = channel.read(buffer);
  1. 寰幆璇诲彇鏁版嵁锛岀洿鍒拌鍙栧埌鏂囦欢鐨勬湯灏俱€傜ず渚嬩唬鐮佸涓嬶細
while (bytesRead != -1) {
    buffer.flip(); // 鍒囨崲涓鸿妯″紡
    while (buffer.hasRemaining()) {
        System.out.print((char) buffer.get()); // 璇诲彇涓€涓瓧鑺傛暟鎹?/span>
    }
    buffer.clear(); // 鍒囨崲涓哄啓妯″紡锛岀户缁鍙栨暟鎹?/span>
    bytesRead = channel.read(buffer);
}
  1. 鍏抽棴鏂囦欢Channel銆傜ず渚嬩唬鐮佸涓嬶細
channel.close();

瀹屾暣鐨勭ず渚嬩唬鐮佸涓嬶細

import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;

public class FileChannelExample {
    public static void main(String[] args) {
        try {
            FileChannel channel = FileChannel.open(Paths.get("鏂囦欢璺緞"), StandardOpenOption.READ);
            ByteBuffer buffer = ByteBuffer.allocate(1024);

            int bytesRead = channel.read(buffer);
            while (bytesRead != -1) {
                buffer.flip(); // 鍒囨崲涓鸿妯″紡
                while (buffer.hasRemaining()) {
                    System.out.print((char) buffer.get()); // 璇诲彇涓€涓瓧鑺傛暟鎹?/span>
                }
                buffer.clear(); // 鍒囨崲涓哄啓妯″紡锛岀户缁鍙栨暟鎹?/span>
                bytesRead = channel.read(buffer);
            }

            channel.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

璇峰皢浠g爜涓殑"鏂囦欢璺緞"鏇挎崲涓轰綘瑕佽鍙栫殑鏂囦欢鐨勫疄闄呰矾寰勩€?/p>

扫码添加客服微信