PrintWriter write与println方法的区别

news/2024/7/11 0:12:14 标签: newline, character, string, 测试, system, server
    PrintWriter在以下以pw代替,在写client与server进行测试的通讯程序时,用pw.println(str)可以把数据发送给客户端,而pw.write(str)却不行!
查看源码发现:
    pw.println(str)方法是由write方法与println()方法组成,页println()方法中执行了newLine()方法。
   而 newLine()实现中有一条out.write(lineSeparator);
    即println(str)方法比write方法中多输出了一个lineSeparator字符;
   其中lineSeparator实现为;lineSeparator = (String) java.security.AccessController.doPrivileged(new sun.security.action.GetPropertyAction("line.separator"));
   而line.separator属性跟据每个系统又是不一样的。
   println()方法的注释说明中提到:
  /**
   * Terminates the current line by writing the line separator string.  The
   * line separator string is defined by the system property
   * <code>line.separator</code>, and is not necessarily a single newline
   * character (<code>'\n'</code>).
   */
    在我机器上测试,默认的lineSeparator输出的十六进制为13 10即\r\n
    这样write方法修改为:write(str+"\r\n")即达到了与println(str)一样的效果了。

http://www.niftyadmin.cn/n/1718355.html

相关文章

连接池未关闭问题的发现与解决

最近项目上线&#xff0c;但是大下午的客服反应项目登录页面很慢&#xff0c;SA发现后立马重启后项目访问速度恢复。 排查问题时&#xff0c;发现nginx的页面访问速度都是在十秒左右&#xff0c;有部分二十秒&#xff0c;这个时间很奇怪。日志显示&#xff0c;项目并没有什么特…

html5之文件与图片拖放上传

前一阵子听了前端的一个分享&#xff0c;其中介绍了HTML5中的一些新特性&#xff0c;特别感兴趣的是文件上传拖放上传&#xff1a; 今晚前端同事提起&#xff0c;刚查了下资料&#xff0c;有些小失望&#xff0c;不过功能真的很实用。 我的理解是&#xff1a; 对于图片他们是编…

thrift介绍与学习

1.trhfit基本介绍 Thrift是 一个跨平台&#xff0c;支持多语言的&#xff0c;通过定义IDL文件&#xff0c;自动生成RPC客户端与服务端通信代码的工具集合&#xff0c;也可以说是框架。 与之相类似的还有google的protocolbuffer. 2.thrift官网 Thrift是由facebook开发&#…

javamail发信带附件的问题

做过很长时间的邮件解析功能&#xff0c;对于javamail及邮件eml处理还是比较熟悉。今天有个需求实现发信&#xff0c;并带有附件。项目中对于文件上传&#xff0c;使用apache自带的DiskFileUpload类。发送邮件时可以得到InputStream流。对于一个附件&#xff0c;其即为一个body…

redis事物介绍与应用

研究reids与使用已经有几个月的时间&#xff0c;中间自己总结了不少文档以及相关资料&#xff0c;接下来时间&#xff0c;会陆续分享一些相关资料&#xff0c;并且介绍其在我们应用中的使用情况。 下面是redis事物的相关介绍&#xff08;参考redis.io&#xff09;&#xff1a;…

基于tungsten API 同步mysql binlog出现EOF packet received的问题解决

tungsten是一个开源的数据库同步工具&#xff0c;详细可参考官网&#xff08;http://en.wikipedia.org/wiki/Tungsten&#xff09; 项目需要&#xff0c;需要实时知道mysql更新的数据&#xff0c;因此需要同步对应mysql结点的binlog日志数据并解析&#xff0c;对于同步与解析tu…

tungsten API 同步日志清除Binlog失败的BUG解决

在简单修改tungsten API实现日志解析完成后&#xff0c;切换到下一个日志前&#xff0c;会进行此日志清除操作。此操作的目的是防止RelayLog同步mysql master日志过多&#xff0c;引起磁盘空间占用过多的问题。此操作在BinlogPosition reset方法中增加了clearFile相关操作。 实…

基于tungsten监测mysql数据修改系统介绍

一.项目背景项目中有个全文检索系统&#xff0c;此系统中需要知道应用中数据的实时更新情况&#xff0c;如增加&#xff0c;删除&#xff0c;这些对于索引与数据库数据的同步都很重要。针对于此处理的方式一般有两种&#xff0c;一种是应用层修改&#xff0c;直接发送消息给检索…