java Byte[]中的换行符问题以及socket中字符串的传输
来源:互联网 发布:云计算安全技术与应用 编辑:程序博客网 时间:2024/05/18 16:13
首先,“回车”(carriage return)和“换行”(line feed)这两个概念的来历和区别我们可以看看:
在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。
当然,java 中换行是一个跨平台的东西了。
在不同的平台上,换行符可能是不同的,例如:
Mac平台:\r
Unix或Linux:\n
Windows或Http:\r\n
Unicode标准:\u2028
可以这样来测试当前环境的换行符是什么:
if (System.getProperty("line.separator").equals("\r\n")) { System.out.println("\\r\\n is for windows"); } else if (System.getProperty("line.separator").equals("\r")) { System.out.println("\\r is for Mac"); } else if (System.getProperty("line.separator").equals("\n")) { System.out.println("\\n is for Unix/Linux"); } System.out.println("aa\nbb"); System.out.println("aa\rbb"); System.out.println("aa\tbb");
win,eclispe输出如下:
\r\n is for windowsaabbaabbaabb
综上,如果你是写一个http,例如webservice的程序,就直接将换行符硬编码为"\r\n"吧!
第二,在socket中进行数据传输通常就采用了byte[]这样的中间件数据类型,所以,我们常常需要将string类型等转成byte[],例如:
String sendString="发送数据";
byte[] sendBytes= sendString .getBytes("UTF8");
.......socket发送
这时,我们在分隔时候若采用了换行符就需要这样:
for (String singleData : exchangeCache) {
sb.append(singleData).append("\r\n");
}
sb.append(singleData).append("\r\n");
}
.......socket发送
0 0
- java Byte[]中的换行符问题以及socket中字符串的传输
- 网络传输时,Java中byte[]转String问题
- Java Socket通信传输中对象传输问题
- java中去除字符串中的空格,回车,换行符,制表符
- Java 替换字符串中的回车换行符的方法
- java中的字符串以及java中常用的系统方法
- Java中byte相加的问题.
- 关于java中byte的相关问题
- Java 处理字符串中的换行
- java中除去字符串(String)中的换行字符(\r \n)
- 关于java socket 传输文件时遇到的问题
- Java使用Socket传输文件遇到的问题
- 唯爱小粽子:Java中去除字符串中的空格、回车、换行符、制表符等特殊字符
- JAVA中有关byte,int,long这些基本数据类型的存储方式以及负数在JAVA中的表示方式
- JAVA中有关byte,int,long这些基本数据类型的存储方式以及负数在JAVA中的表示方式
- java socket 以及 流 关闭的问题
- 关于QT中中文乱码以及显示常量中有换行符的问题
- PHP中去除字符串中的换行的方法
- HDU分类
- 约翰纳什 博弈论
- 机器学习常见算法分类汇总
- windows安装程序无法将windows配置为在此计算机的硬件上运行
- Java中强引用、弱引用、软引用、虚引用
- java Byte[]中的换行符问题以及socket中字符串的传输
- 禅道的安装与升级
- [HDU 2222] Keywords Search (AC自动机)
- MongoDB小结09 - update【定位修改器】
- start developing ios apps today
- Ormlite数据库
- TortoiseGit not exit cleanly
- 算法系统学习-1排序-选择排序
- Gym 100796E Permutation Polygon [树状数组]