Java : WritableByteChannel 示例
Java 中的 WritableByteChannel (Java SE 23 & JDK 23) 及其示例。
您将找到大多数 WritableByteChannel 方法的代码示例。
注解 :
- 本文可能使用了翻译软件以方便阅读。 另请查看英文原文。
简介
可以写入字节的通道。 (机器翻译)
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]
Methods
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]