Java : WritableByteChannel - API使用例
WritableByteChannel (Java SE 20 & JDK 20) の使用例まとめです。
だいたいのメソッドを網羅済みです。
API仕様のおともにどうぞ。
概要
WritableByteChannel インタフェースは、バイトデータを書き込むことができる Channel です。
final var path = Path.of("R:", "java-work", "test.data");
System.out.println(path); // R:\java-work\test.data
try (final WritableByteChannel channel = Files.newByteChannel(path,
StandardOpenOption.CREATE, StandardOpenOption.WRITE)) {
final byte[] bytes = {10, 20, 30, 40, 50};
final var src = ByteBuffer.wrap(bytes);
src.limit(3);
System.out.println(src); // java.nio.HeapByteBuffer[pos=0 lim=3 cap=5]
if (src.hasArray()) {
System.out.println(Arrays.toString(src.array())); // [10, 20, 30, 40, 50]
}
final var ret = channel.write(src);
System.out.println(ret); // 3
System.out.println(src); // java.nio.HeapByteBuffer[pos=3 lim=3 cap=5]
if (src.hasArray()) {
System.out.println(Arrays.toString(src.array())); // [10, 20, 30, 40, 50]
}
}
final var bytes = Files.readAllBytes(path);
System.out.println(Arrays.toString(bytes)); // [10, 20, 30]
メソッド
int write (ByteBuffer src)
final var path = Path.of("R:", "java-work", "test.data");
System.out.println(path); // R:\java-work\test.data
try (final WritableByteChannel channel = Files.newByteChannel(path,
StandardOpenOption.CREATE, StandardOpenOption.WRITE)) {
final byte[] bytes = {10, 20, 30, 40, 50};
final var src = ByteBuffer.wrap(bytes);
src.limit(3);
System.out.println(src); // java.nio.HeapByteBuffer[pos=0 lim=3 cap=5]
if (src.hasArray()) {
System.out.println(Arrays.toString(src.array())); // [10, 20, 30, 40, 50]
}
final var ret = channel.write(src);
System.out.println(ret); // 3
System.out.println(src); // java.nio.HeapByteBuffer[pos=3 lim=3 cap=5]
if (src.hasArray()) {
System.out.println(Arrays.toString(src.array())); // [10, 20, 30, 40, 50]
}
}
final var bytes = Files.readAllBytes(path);
System.out.println(Arrays.toString(bytes)); // [10, 20, 30]
Channelで宣言されたメソッド
close, isOpen
「Java API 使用例 : Channel」をご参照ください。