try-with-resources引起的Socket关闭,产生java.net.SocketException: Socket is closed?
一、try-with-resources是什么?
它是jdk1.7之后出现的一直新的try-catch异常捕获操作,目的就是简化操作,实现资源的自动关流。
示例代码
try(FileReader fr = new FileReader("E:\\c.txt")){int c = fr.read();System.out.println((char)c);}catch (IOException e){e.printStackTrace();}
所以用它的时候要注意了,如果我们的资源还要继续使用,就不能用它来捕获异常。例如在编写客户端-服务器程序时,用于交互的Socket在交互完之前是不应该被释放的,否则就会出现java.net.SocketException: Socket is closed异常。
例子:
这是一个将服务器发送过来的装着集合对象的对象流反序列化为集合对象的方法。方法中把从Socket获得的InputStream包装在了ObjectInputStream对象流中,而ObjectInputStream对象使用了try-with-resources捕获,try中语句结束之后会自动关闭对象流,从而Socket被关闭。
- 如果Scoket有相关联的通道,则生成的OutputStream 的所有操作也会关联该通道。
- 关闭生成的OutputStream也将关闭相关的Socket。(InputStream同样的道理)
文章转自
try-with-resources引起的Socket关闭,产生java.net.SocketException: Socket is closed?相关推荐
- Unable to open debugger port (127.0.0.1:4184): java.net.SocketException socket closed
Unable to open debugger port (127.0.0.1:4184): java.net.SocketException "socket closed" ht ...
- 解决:Unable to open debugger port (127.0.0.1:55017): java.net.SocketException “Socket closed“
项目以前启动正常,突然报错,启动不起来了,报了个Unable to open debugger port (127.0.0.1:55017): java.net.SocketException &qu ...
- 解决jmeter压测试时java.net.SocketException: Socket closed异常
问题描述: jmeter压测时会报java.net.SocketException: Socket closed,如图所示: 解决办法: 1.implementation选择httpclient 4, ...
- java socket监控_ZeroMQ(java)中监控Socket
基本上ZeroMQ(java)中基本的代码都算是过了一遍了吧,不过觉得它在日志这一块貌似基本没有做什么工作,也就是我们通过日志来知道ZeroMQ都发生了什么事情.. 而且由于ZeroMQ中将连接的建立 ...
- 记录一次Socket异常:java.net.SocketException: Connection reset
先贴异常信息 java.net.SocketException: Connection resetat java.net.SocketInputStream.read(SocketInputStrea ...
- appium运行报错java.net.SocketException: socket write error
这个错我调了 快两天一点头绪没有,脚本正常跑没问题,但是就是控制台输出信息报错,没法定位问题在哪.报错如图: 虽然这个报错不影响测试结果,但是本人有强迫症,一定要查出究竟: 我的尝试: 1.那天试验, ...
- Idea debugger 无法启动-unable to open debugger port , java.net.SocketException socket closed
idea debug 突然无法启动,试了多种方法,最后通过修改JMX port (将port数值调大)搞定 参考资料: https://blog.csdn.net/yhwpeng/article/de ...
- Tomcat debug启动出错Unable to open debugger port (127.0.0.1:62947): java.net.SocketException socket clo
- unable to open debugger port java.net.SocketException socket closed 解决方法汇总,不定期更新
一般idea中tomcat启动失败这个bug 首先就会想到是不是端口被占用 查询端口占用: ·windows netstat -ano | findstr "xxxx" ·linu ...
最新文章
- 可以打开md_热议MD有病!旭旭宝宝怒斥CG偷开“录像轮播”:人家不开还不行?...
- .net dataGridView当鼠标经过时当前行背景色变色;然后【给GridView增加单击行事件,并获取单击行的数据填充到页面中的控件中】...
- 杭电1421java实现
- ECMall如何在后台添加模板编辑页
- Linux环境下服务器 Tomcat war包部署步骤
- tidb vs mysql_一个长耗时SQL在TiDB和Mysql上的耗时测试
- Linux tar命令
- 十、Python-模块
- jQuery WEUI select的使用
- SQL:取 分组后 的 按时间倒序 的前5条数据
- 人类历史上最有影响力的五个数据可视化信息图
- 肇庆学院计算机论文选题,肇庆学院本科毕业论文(设计)写作与印制规范
- html 数字大小写转换,数字大小写转化
- 俄罗斯一法院对谷歌处以72亿卢布罚款
- Python实现图形界面猜数字游戏(GUI)
- ISP-长短曝光融合生成HDR图像
- C语言经典题目:有5个人坐在一起,问他们分别多少岁?
- ez wifibroadcast 学习2
- settext 下划线_Android TextView 添加下划线的几种方式
- Coremail论客全球安全生态合作伙伴召集令正式启动
热门文章
- Golang之slice操作
- 使用 JIRA 4.0 + Greenhopper 4.0 进行项目状态跟踪(转)
- Linux日常命令使用记录
- python 全栈开发,Day82(点赞和踩灭,用户评论)
- springnbsp;security总结nbsp;太有用了!!
- [RM HA 1] Cloudera CDH5 RM HA功能验证
- 草根版创业网站学巴菲特售时间 获天使投资
- 微软VS2008月底推出beta 2中文版 搭配.NET 3.5
- MATLAB中squeeze函数的作用
- 一步一步教你在 docker 容器下使用 mmdetection 训练自己的数据集