java输出流

来源:百度知道 编辑:UC知道 时间:2024/06/14 04:46:52
我现在把例如:把PrintWriter的一个对象, cout=null,和cout.close()区别。PrintWriter cout=new PrintWriter(client.getOutputStream())后,仅仅只把cout赋为null后,我现在想要再用cout进行操作,还必须在重新创建嘛。。高手指教如何操作。。Thanks....
我现在做的就是网络通信方面的,我cout=null后,没关闭,对方的输入流还在等待,我现在还需输出,(那现在我只能必须重建对象cout,?)如果是的话,还迷惑的是:对方输入流等待的能不能转向新建的cout输出流呢?或者,怎样暂时停用cout?而不赋为null
谢谢回答。。很感谢...解决定追分

如图:

    假设你有两个cout应用同时指向一个PrintWriter,例如:

PrinterWriter coutA = new PrinterWriter(...);

PrinterWriter coutB = countA;

这时,你将coutA = null,仅仅是将coutA这个引用置空而已,实际上并没有对内存中真实的PrinterWriter对象产生影响,换句话说,这时coutB照样可以正常工作。

    而close()方法,就是将PrinterWriter内存块对象与外部文件系统的连接流关闭,所以此时的PrinterWriter对象就不能再读写数据了。

    区别就是这些。

    不过在实际使用过程中,如果只有一个引用(譬如就一个cout)指向PrinteWriter对象,而你又cout = null,则JVM的垃圾回收系统会对PrinteWriter对象进行回收,而在回收之前,也会自动调用PrintWriter对象的close()方法而释放资源。

    总之,一般建议的用法是:

cout.close();//先关闭

cout = null;//再显式置空引用

Java输出 java 输出 java io 输入流 输出流 java输出随机数 JAVA的输出问题 java输入和输出 java的输出问题 JAVA逆序输出问题 java输出三角形 JAVA数组输出问题??