java socket读字节问题

原创 2012年03月27日 18:44:26

原来java socket一直都用readline解析数据,后来和硬件设备通讯才知道readline必须有\n\t,

                           OutputStream o = socket.getOutputStream();
			o.write(message.getBytes("UTF-8"));
//			out = new PrintWriter(socket.getOutputStream(), true);
//			out.println(message);//发送命令
			InputStream isr=new BufferedInputStream(socket.getInputStream());//读传来的信息


今天又有同事遇到了这个问题,记一下

java.io
类 PrintWriter

向文本输出流打印对象的格式化表示形式。此类实现在 PrintStream 中的所有 print 方法。它不包含用于写入原始字节的方法,对于这些字节,程序应该使用未编码的字节流进行写入。

PrintStream 类不同,如果启用了自动刷新,则只有在调用 printlnprintfformat 的其中一个方法时才可能完成此操作,而不是每当正好输出换行符时才完成。这些方法使用平台自有的行分隔符概念,而不是换行符。

BufferedInputStream 为另一个输入流添加一些功能,即缓冲输入以及支持 markreset 方法的能力。在创建 BufferedInputStream 时,会创建一个内部缓冲区数组。在读取或跳过流中的字节时,可根据需要从包含的输入流再次填充该内部缓冲区,一次填充多个字节。mark 操作记录输入流中的某个点,reset 操作使得在从包含的输入流中获取新字节之前,再次读取自最后一次 mark 操作后读取的所有字节。

Java Socket 读取服务器端返回数据

//客户端 //1、创建客户端Socket,指定服务器地址和端口 Socket socket =newSocket("localhost",10086); //2、获取输出流,向服务器端发送信息 Ou...

java读取网络数据流不完整的问题

在用java的socket读取网络数据流的时候,datainputstream read(byte [] b),数据读取不完整,例如有3W的数据,有可能读到2W时read就解除阻塞,这个问题纠结了好久...

socket输入流中读取一个固定长度的字节

前段时间项目中用到socket编程,我用socket输入流读取一个固定长度的字节经常会遇到各种各样的错误:后面读取内容的错位,或者直接后面的内容读取不到等问题。...

Socket读取报文(字节流)不会退出循环的解决方法

1.报文需要特定格式,报文头显示整个报文字节长度. 读取流时new String(char[], 0, br.read(char[])) .getBytes[]的长度累加,累加到报文字节长度则退出循环...

java中char与汉字占用字节个数问题

http://maimode.iteye.com/blog/1341354 一直都是糊里糊涂的在用,始终没有搞清楚汉字在java中占用字节个数的问题,每次都是逃避着过去了。今天一...

Tomcat部署Web应用方面的一些问题(多Tomcat、指定Java、字节码替换)

这篇博文操作的系统环境为CentOS系统,目标是在该系统中部署一个Tomcat以及跑在该Tomcat上的一个Java Web应用。部署的系统环境有限制,主要表现在:该主机上已部署Tomcat,新部署的...

从字节码角度理解一些java 问题

1、非静态内部类对象持有外部的引用: public class ExternalClass{ class InsideClass{ } } javac 会编译出两...
  • xiaolli
  • xiaolli
  • 2017年06月27日 16:11
  • 107

利用字节码解决java中i=i++遇到的问题

很对不起作者,当时看到这篇文章的时候因为有事情忙,所以直接拷贝发到邮箱,这个时候转出来,就找不到出处了,如果哪位找到出处给我留个言,我把出处补上。谢谢 i=0;i=i++为什么等于0这个问题困扰...
  • xswh520
  • xswh520
  • 2014年11月23日 12:36
  • 237

Java学习问题1: boolean型数据占几个字节?

问题1: boolean型数据占几个字节? 为了验证boolean型数据占几个字节,于是写了段代码,如下: package org.study; class Chapter1_1 { pu...

Java中字符编码问题和中文占几个字节的问题(ASCII Unicode UTF-8 )

ASCII码在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java socket读字节问题
举报原因:
原因补充:

(最多只允许输入30个字)