㈠ java byte到char的轉換
char 和 byte不是一個概念的芹搏或
byte a = (byte)'b';
這個是成立的 char型就是一個單字嫌伍符 直接強制類型轉換就可以完成轉換成1個位元組的byte。 因為char的定義就是1位元組。
所以互換方式就是強制轉換
byte a = (byte)'c';
char b = (char)a;
System.out.println(b);
char在java中可銀山以直接取值來表示
char b = (char)100;
System.out.println(b);
結果是d
㈡ 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 中char字元怎麼轉成二進制
中喚租char字銀咐符怎麼轉和搏兆成二進制
public class StringDemo {
public static void main(String[] args) throws UnsupportedEncodingException {
Char s = 'A';
byte[] bys = s.getBytes();
System.out.println(Arrays.toString(bys));
String ss = new String(bys); // A
System.out.println(ss);
}
㈣ java char,byte移位操作時的類型轉換。
int類型數據4位元組32位
int 數據 >> 數值右端
所以數值右端范圍是(0-31)00000-11111
所有隻有右端數值的低5位有用
例子
int類型數據3(0.....0011)
3 >> 33 表示 3右移33位(100001)
但是3是int類型,只有32位,右移數值只有低5位有用
3 >> 33 相當於 3 >> 1 結果是 1
㈤ java 中各種數據類型轉換byte[]的方法
ObjectOutputStream oos = null;//對象輸出流
ByteArrayOutputStream baos = null;//byte數組輸出流
ByteArrayInputStream s = null;//對象輸入流
try {
//序列化
baos = new ByteArrayOutputStream();
oos = new ObjectOutputStream(baos);//將數組流傳入對象流
oos.writeObject(new Integer(1));//用對象流讀取對象。
byte[] bytes = baos.toByteArray();//用數組流將傳入的對象轉化為byte數組
//反序列化
s = new ByteArrayInputStream(bytes);
ObjectInputStream ois = new ObjectInputStream(s);
Integer i = (Integer)ois.readObject();
System.out.println(i);
} catch (Exception e) {
}以上是把integer類型轉化成byte[]數組類型。註:基本類型要轉化為byte[]數組的話,需要用該基本類型的引用類。比如int的引用類是integer,就行了所有的類型,包括class都可以用這種序列化方式來轉成byte[],
㈥ java 中,char 數組轉換成 byte數組(急,在線等)
package com.example.lib;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.*;
import java.nio.charset.Charset;
public class MyClass {
public static void main(String[] args) throws IOException {
FileInputStream fs; //定義流對象變數
fs = new FileInputStream("/Users/mac/androidStudioProjects/MyApplication/lib/src/main/java/com/example/lib/mytext.txt");
byte[] bytes = new byte[fs.available()]; //定義接收數據的位元組數組,並用流對象初始化數組大小
fs.read(bytes); //裝載數據
char[] w = getChars(bytes);//將位元組數組轉化為字元數組,注意數組末尾會有空字元
String s = new String(w); //利用字元串構造函數來構造字元串,
System.out.println("結果為:"+s.trim());輸出時,去掉末尾空格字元
}
private static byte[] getBytes (char[] chars) {
Charset cs = Charset.forName ("UTF-8");//設定字元集編碼代號
CharBuffer cb = CharBuffer.allocate (chars.length);//按照字元數組長度進行分配空間
cb.put (chars); //裝載數據
cb.flip (); //指針復位
//按照編碼規則進行編碼
ByteBuffer bb = cs.encode (cb);
return bb.array();
}
private static char[] getChars (byte[] bytes) {
Charset cs = Charset.forName ("UTF-8");//指定字元集編碼
ByteBuffer bb = ByteBuffer.allocate (bytes.length);
bb.put (bytes);//裝載數據
bb.flip ();//調整回指針為0
CharBuffer cb = cs.decode (bb);//按照指定字元集進行解碼
return cb.array();//返回字元數組
}
}
㈦ java裡面的char和byte怎麼轉換
掘扒java中,char轉化為byte的話,可以用參考如下方法:
String s=new String("櫻芹1");
byte[] b=new byte[1];
b[0] = Byte.parseByte("脊散畢"+s.charAt(0));
System.out.println(b[0]);
結果為:1,而不是ascii碼的值了。
㈧ java裡面的char和byte怎麼轉換
java中,char轉化為byte的話,可以用參考如下方法:
String s=new String("1");
byte[] b=new byte[1];
b[0] = Byte.parseByte(""+s.charAt(0));
System.out.println(b[0]);
結果為:1,而不是ascii碼的值了。
㈨ Java中怎麼把一個中文字元char轉換成byte
1、中文一個字是兩個char,即是String類型。
2、String只能轉為byte[]數組,方法是調用其getBytes()方法。
㈩ java怎麼把char轉換成byte數組
1、位元組數組轉換為字元串
byte[]
byBuffer
=
new
byte[20];
String
strRead
=
new
String(byBuffer);
strRead
=
String.ValueOf(strRead.toCharArray(),
0,
byBuffer.length]);
2、字元串轉換成位元組數組
byte[]
byBuffer
=
new
byte[200];
String
strInput=abcdefg;
byBuffer=
strInput.getBytes();
注意:如果字元串裡面含有中文,要特別注意,在android系統下,默認是UTF8編碼,一個中文字元相當於3個位元組,只有gb2312下一個中文相當於2位元組。這種情況下可採取以下辦法: