Java中如何知道OutputStream是否可以继续写入?

问题描述 投票:0回答:1

如何知道

OutputStream
是否可以继续用Java编写?

对于

InputStream
,我们可以检查
return
是否等于
-1
来知道输入流是否已经结束,但是如何检查
OutputStream
呢?


我为什么要问这个问题?例如,我需要将数据写入字节数组或缓冲区,但API提供的方法只有

OutputStream
类型的参数。如何让我的
OutputStream
实现告诉 API 数组/缓冲区已满?

java outputstream
1个回答
0
投票

请注意,OutputStream 与 InputStream 的行为不同:

InputStream:当没有更多数据可供读取时,以 -1 表示结束。 OutputStream:写入数据,同样没有“结束”的概念。

判断OutputStream是否可以写入:

  1. 捕获异常:如果在outputStream.write(data)过程中抛出IOException,则表明存在写入问题。

  2. 特定流状态:某些 OutputStream 子类可能有方法检查其状态。请务必参考他们的文档。

  3. 写入后刷新:使用outputStream.flush() 确保数据实际写入并显示任何问题。

  4. 始终关闭:以outputStream.close()结束以释放资源并确保所有数据都已写入。

对于 OutputStream,异常是写入问题的主要指标。

© www.soinside.com 2019 - 2024. All rights reserved.