在java中将字符存储为单个字节

时间:2013-01-31 21:37:02

标签: java char byte

我读到我们应该使用Reader / Writer来读/写字符数据,使用InputStream / OutputStream来读/写二进制数据。另外,java字符是2个字节。我想知道以下程序是如何工作的。它从标准输入读取字符将它们存储在一个字节中并打印出来。这里两个字节字符如何适合一个字节?

http://www.cafeaulait.org/course/week10/06.html

2 个答案:

答案 0 :(得分:6)

评论很清楚地说明了这一点:

// Notice that although a byte is read, an int
// with value between 0 and 255 is returned.
// Then this is converted to an ISO Latin-1 char 
// in the same range before being printed.

基本上,这个假设传入的字节代表ISO-8859-1中的一个字符。

如果您使用的控制台具有不同的编码,或者可能提供的字符不是 ISO-8859-1,那么您最终会遇到问题。

基本上,这是不是好的代码。

答案 1 :(得分:1)

Java将字符存储为2个字节,但对于普通的ASCII字符,实际数据适合一个字节。因此,只要您可以假设正在读取的文件有ASCII,那么它将正常工作,因为字符的实际数值适合单个字节。

相关问题