2012-03-19 20 views
1

java有没有一个类允许从一个流中读取String和byte [],还有另一个用于将String和byte []写入流的类?如果有必要像HTTP一样传输byte []和String?java有没有一个类允许从一个流中读取String和byte []?

+0

@mfrankli相互转换?是。互换?几乎不。如果你知道用什么编码来解释它,一个'byte []'只能用作字符串。 – Taymon 2012-03-19 03:35:58

回答

3

字符编码可能存在潜在的问题。特别是,Java在内部表示UTF-16中的字符串,这可能不是网络连接另一端的人所期望的。由此产生的行为将是一致的,但不一定是普通程序员期望的。

得到一个字符串的byte[]表示并不难。只需使用String.getBytes(),或者允许您指定编码的重载版本。

+1

http://www.joelonsoftware.com/articles/Unicode.html是一个关于编码问题的好资源 – mfrankli 2012-03-19 03:41:18

+0

我真的记得那个,不知道为什么我没有链接到它。谢谢! – Taymon 2012-03-19 03:52:48

+0

如何从字节输入流中读取一行(分隔符是CRLF)?有没有更快的方式来做它,而不是从一个字节读取一个字节并比较前一个字符和当前字符? – shawn 2012-03-19 04:00:29

1

它的确如此。对于字节,DataInputStreamObjectInputStream都具有:readLine()和readUTF(),并且读取(byte [],...)字节。

+0

readLine已弃用 – shawn 2012-03-19 04:30:45

+0

@shawn确实如此,但它也存在。你提出的问题是错误的。 – EJP 2012-03-19 05:16:10

相关问题