鎬庝箞浣跨敤filechannel璇诲彇鏂囦欢
瑕佷娇鐢‵ileChannel璇诲彇鏂囦欢锛屽彲浠ユ寜鐓т互涓嬫楠よ繘琛屾搷浣滐細
- 鎵撳紑涓€涓枃浠禖hannel锛屽彲浠ヤ娇鐢?code>FileInputStream鎴?code>RandomAccessFile鏉ュ垱寤轰竴涓狥ileChannel瀵硅薄銆傜ず渚嬩唬鐮佸涓嬶細
FileChannel channel = FileChannel.open(Paths.get("鏂囦欢璺緞"), StandardOpenOption.READ);
- 鍒涘缓涓€涓狟yteBuffer瀵硅薄鏉ユ帴鏀惰鍙栫殑鏁版嵁銆傜ず渚嬩唬鐮佸涓嬶細
ByteBuffer buffer = ByteBuffer.allocate(1024);
- 浣跨敤FileChannel鐨?code>read()鏂规硶灏嗘暟鎹粠鏂囦欢Channel璇诲叆鍒癇yteBuffer涓€傜ず渚嬩唬鐮佸涓嬶細
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銆傜ず渚嬩唬鐮佸涓嬶細
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>
相关问答