Java : Flushable - API使用例
Flushable (Java SE 21 & JDK 21) の使い方まとめです。
だいたいのメソッドを網羅済みです。
API仕様書のおともにどうぞ。
概要
Flushable を実装したIOストリームでは、バッファに格納されていてまだ実際に書き込まれていないデータを、明示的にフラッシュする(書き込む) ことができます。
final var out = new ByteArrayOutputStream();
try (final var os = new BufferedOutputStream(out)) {
final Flushable flushable = os;
os.write(10);
System.out.println(Arrays.toString(out.toByteArray())); // []
flushable.flush();
System.out.println(Arrays.toString(out.toByteArray())); // [10]
os.write(20);
System.out.println(Arrays.toString(out.toByteArray())); // [10]
flushable.flush();
System.out.println(Arrays.toString(out.toByteArray())); // [10, 20]
os.write(30);
System.out.println(Arrays.toString(out.toByteArray())); // [10, 20]
flushable.flush();
System.out.println(Arrays.toString(out.toByteArray())); // [10, 20, 30]
}
メソッド
void flush ()
final var out = new ByteArrayOutputStream();
try (final var os = new BufferedOutputStream(out)) {
final Flushable flushable = os;
os.write(10);
System.out.println(Arrays.toString(out.toByteArray())); // []
flushable.flush();
System.out.println(Arrays.toString(out.toByteArray())); // [10]
os.write(20);
System.out.println(Arrays.toString(out.toByteArray())); // [10]
flushable.flush();
System.out.println(Arrays.toString(out.toByteArray())); // [10, 20]
os.write(30);
System.out.println(Arrays.toString(out.toByteArray())); // [10, 20]
flushable.flush();
System.out.println(Arrays.toString(out.toByteArray())); // [10, 20, 30]
}