如何知道
OutputStream
是否可以继续用Java编写?
对于
InputStream
,我们可以检查return
是否等于-1
来知道输入流是否已经结束,但是如何检查OutputStream
呢?
我为什么要问这个问题?例如,我需要将数据写入字节数组或缓冲区,但API提供的方法只有
OutputStream
类型的参数。如何让我的 OutputStream
实现告诉 API 数组/缓冲区已满?
请注意,OutputStream 与 InputStream 的行为不同:
InputStream:当没有更多数据可供读取时,以 -1 表示结束。 OutputStream:写入数据,同样没有“结束”的概念。
判断OutputStream是否可以写入:
捕获异常:如果在outputStream.write(data)过程中抛出IOException,则表明存在写入问题。
特定流状态:某些 OutputStream 子类可能有方法检查其状态。请务必参考他们的文档。
写入后刷新:使用outputStream.flush() 确保数据实际写入并显示任何问题。
始终关闭:以outputStream.close()结束以释放资源并确保所有数据都已写入。
对于 OutputStream,异常是写入问题的主要指标。