java 数据流关闭后 对应的Socket也会自动关闭吗? 请问有啥方法能不关闭Socket!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 数据流关闭后 对应的Socket也会自动关闭吗? 请问有啥方法能不关闭Socket!相关的知识,希望对你有一定的参考价值。

如题

不一定,但socket关闭后所对应的流肯定会关闭的!
一般是放在finally中关闭socket
希望能帮到你!
参考技术A 对应的Socket并没有关闭: Socket client=new Socket(ip,port); client.close();才是关闭客户对象!,只要用一个while(){} 语句让其在while里循环即可,不满足while的条件时则关闭client.close(); 参考技术B 不会的 要手动关闭 参考技术C . 参考技术D vv

java中文件打开和关闭的问题

编译完运行程序,文件被打开进行了一些操作后,代码中没有编写关闭文件的语句。那么当程序结束退出后,这个文件是否自动被关闭?还是依然保持着打开状态??

JVM退出时会释放所有文件的句柄,这个文件当然是被自动关闭了;如果你在写入文件后,没有及时调用flush(),写入的内容不会刷入磁盘,就丢失了. 参考技术A 根据我的编程经验,也会遇到文件忘记close的情况,我来说一下我在这种情况下发生了什么问题。我打开一个文件,往里面写东西,如果忘了关闭,在buffer中的内容不会写到文件里面去,也就是有时候明明已经写入内容了,当你打开文件看了下发现会少掉了一部分。而如果在程序推出前close了文件流,则不会发生这种情况。所以文件用完了无论是读写都要养成关闭的好习惯,希望我的回答能够帮到你。 参考技术B 可以通过BufferedReader 流的形式进行文件流的大卡,之后通过readLine方法获取到流的内容,之后通过close方法关闭流(关闭文件流)。
BufferedReader bre = null;
try
String file = "D:/test/test.txt";
bre = new BufferedReader(new FileReader(file));//此时获取到的bre就是整个文件的缓存流
while ((str = bre.readLine())!= null) // 判断最后一行不存在,为空结束循环

System.out.println(str);//原样输出读到的内容

备注: 流用完之后必须close掉,如上面的就应该是:bre.close(),否则bre流会一直存在,直到程序运行结束。
参考技术C 自己搞个测试就行了,有没被释放,删除一下文件,删不了就没被释放嘛

以上是关于java 数据流关闭后 对应的Socket也会自动关闭吗? 请问有啥方法能不关闭Socket!的主要内容,如果未能解决你的问题,请参考以下文章

socket 如果不关闭会自动关闭吗?为啥要心跳连接?

java关闭IO流的时候Socket也同时关闭

[Java]I/O底层原理之二:Socket工作机制

怎样判定socket连接已经关闭

学习JAVA Socket中 启动了serverSocket 再启动socket 为啥serversocket 自动关闭了

批处理 自动输入Y和 允许后自动关闭