⑴ java中byte與char的問題。
byte是位元組數據類型,是有符號型的,佔1個位元組;大小范圍為-128—127。
char是字元數據類型,是無符號型的,佔2位元組(Unicode碼);大小范圍是0—65535;char是一個16位二進制的Unicode字元,JAVA用char來表示一個字元。
區別:
1、Char是無符號型的,可以表示一個整數,不能表示負數;而byte是有符號型的,可以表示-128—127的數;
2、char可以表中文字元,byte不可以;
3、char、byte、int對於英文字元,可以相互轉化
對於你上面說的最後會出異常是因為你不能通過while對DataInputStream 無限制的讀取,DataInputStream 內容讀取完了之後就沒有數據可讀,固然會報錯。
你應該先判斷DataInputStream 是否可用,只有在可用的情況下能繼續讀取,應該改成:
DataInputStreamdi=newDataInputStream(newByteArrayInputStream(
s.getBytes()));
while(di.available()>0){
System.out.print((char)di.readByte());
}
文章參考:http://blog.csdn.net/luoweifu/article/details/7770588
⑵ java Byte 轉char
char c = (char)b.byteValue();
System.out.println(c);
⑶ java解析C語言 結構體 byte[]轉char
強轉就可以了,例如:
byte[]
data={0x41,
0x42};
char
ch=(char)data[0];
ch就會是'A'了
⑷ java裡面的char和byte怎麼轉換
java中,char轉化為byte的話,可以用參考如下方法:x0dx0aString s=new String("1");x0dx0abyte[] b=new byte[1];x0dx0ab[0] = Byte.parseByte(""+s.charAt(0));x0dx0aSystem.out.println(b[0]);x0dx0a結果為:1,而不是ascii碼的值了。