Java-线程内部 IO 流关闭的顺序

Java-线程内部 IO 流关闭的顺序

泛泛之交 发布于 2017-10-25 字数 455 浏览 1154 回复 1

这样的,在一个线程里面开了 socket
然后用了 socket 的 inputStream 和 outputStream

当设备请求正常关闭时,
我们习惯上应该要先关闭那些资源呢?

比如还有一个 BufferedReader
当调用 reader.close() 的时候,javadoc 有提示会关闭相关的流,也就是会自动关闭 inputStream 么?

之前有写过一个 蓝牙 的工程
有先关闭 线程,后关闭 socket,最后关闭 流 的说法,说这样子不会出现异常,
不巧的是,我照着做的,依然还是有异常。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜无邪 2017-10-26 1 楼

1,java的流设计,其实是沿用了设计模式中的装饰模式,当调用外层包装流的close()时,其实最里层的inputstream的close也会被调用.

2,先关闭流,再关闭socket.

3,我不明白什么叫"关闭线程",我想你最好先看看有关线程控制方面的书籍.即便有"关闭线程"这个概念,它和socket的操作也完全不在一个层面上,无所谓谁先谁后.