`
wxinpeng
  • 浏览: 581723 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

PrintWriter 类中println和write方法的区别

阅读更多

问题:编写Socket聊天软件,使用PrintWriter类取得Socket对象的输出流,使用println和write两个方法来完成向输出流中写出,用println没有问题,但是用write没有反应,即写出去后,对方读不到。

 

Google查了一下,问题解释如下:

 

为什么客户端调用了write()和flush()后,服务器端依然read不到数据。因为socket.getOutputStream()取到的实现类是java.net.SocketOutputStream,这个类并没有覆写flush方法,它的父类java.io.FileOutputStream也没有覆写,于是最终就调到了最顶层java.io.OutputStream的flush()方法,这就恶心了,这个方法是空的。于是...

因此,还是使用Reader.readLine()和Writer.println()来处理socket吧,或者直接使用NIO。

(注意,SocketOutputStream类在JavaDoc中不存在,只在源码中有,他是个受保护的类。)

分享到:
评论

相关推荐

    人工智能-项目实践-搜索引擎-java实验1-实现搜索引擎的倒排索引数据结构

    如果写文本文件,推荐使用PrintWriter,当创建好PrintWriter对象后,调用其println和print方法可以将字符串一行行的写入到文本文件,使用方法与System.out.println, System.out.print完全一样 具体使用方法,请见...

    通过java操作excel表格的工具类库jxl

     很简单和插入单元格的方式一样,不过就是参数多了些,WritableImage这个类继承了 Draw,上面只是他构造方法的一种,最后一个参数不用说了,前面四个参数的类型都是double,依次是 x, y, width, height,注意,这里...

    Excel数据操纵-jar包-jxl.jar

     很简单和插入单元格的方式一样,不过就是参数多了些,WritableImage这个类继承了Draw,上面只是他构造方法的一种,最后一个参数不用了说了,前面四个参数的类型都是double,依次是 x, y, width, height,注意,这里...

    JAVA程序中FTP的连接以及上传文件

    import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; import sun.net.TelnetOutputStream; import sun.net.TelnetInputStream; import sun.net.ftp.FtpClient; public class ...

    Jsp文件上传下载(工具类源码)

    需导入commons-fileupload-1.2.1.jar和 commons-io-1.3.2.jar upload2.jsp *" pageEncoding="gb2312"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> ; charset=UTF-8"> 文件上传 ...

    Java Socket 编程源代码示例

    // LOG_FILE.write(tmp); try { Socket socket = accept(); while (true) { new ServerReaderThread(socket); new ServerWriterThread(socket); } } finally { close(); } } ...

    java结合jsp写的上传文件代码

    fileItem.write(new File(request.getRealPath("/") + filename)); System.out.println(filename); out.println("文件上传成功. 已保存为: " + t_name + " 文件大小: " + size + "字节<p />"); out .println("继续...

    HttpClient以及获取页面内容应用

    HttpClient已经应用在很多的项目中,比如Apache Jakarta上很著名的另外两个开源项目Cactus和HTMLUnit都使用了HttpClient。 下载地址:  http://hc.apache.org/downloads.cgi 1.2特性 1. 基于标准、纯净的java语言。...

    桌面管家源码(java)

    public PrintWriter out=null;//输出流对象 public BufferedReader in=null;//输入流对象 public DataOutputStream tsf=null;//输出流对象 public DataInputStream rcv=null;//输入流对象 public ...

    commons-fileupload-1.2.jar和commons-io-1.3.2.jar

    item.write(new File("d:\\" + m.group(1))); out.print(name+"  "+size+" "); } catch (Exception e) { out.println(e); } } else { throw new IOException("fail to upload"); } } } ...

    java 文本编辑器

    // 菜单中的子菜单 JTextArea jtextArea;// 文本框 JScrollPane jscrollPane;// 带滑动条的 JFileChooser jfileChooser;//文件选择器 File currentFile; public TestNotepad() { // TODO Auto-...

    servlet2.4doc

    Overview Package Class Tree Deprecated Index Help PREV NEXT FRAMES NO FRAMES A B C D E F G H I J L P R S U V -------------------------------------------------------------------------------- ...

Global site tag (gtag.js) - Google Analytics