㈠ java 的byte數組與漢字輸出
String在Java是字元數組,他的字元是使用Unicode字元來構建的。
String s=new String(byteArray);
是把數組byteArray[]的值初始化給了s,所以s是一個把byte類型的數據轉化為Unicode字元數組的字元串。
㈡ java ByteArrayOutputStream類的一個小問題
public synchronized byte toByteArray()[] {
byte newbuf[] = new byte[count];
System.array(buf, 0, newbuf, 0, count);
return newbuf;
}
上面是源代碼中的實現,可見是復制後的。此外產生的只是當前緩沖區中的數據
㈢ Java byteArrayInputStream 的解釋
你知道FileInputstream和FileOutputstream嗎?FileInputstream,FileOutputstream分別是由抽象類Inputstream和Outputstream繼承來的,他們的源和目的地是文件,鍵盤,滑鼠,或者顯示器.。
而byteArrayInputStream,byteArrayOutputStream的源和目的地是位元組數組,即內存。FileInputstream的構造函數時FileInputstream(String filename),這樣的話Fileinputstream流的源就是名字為filename的文件,而byteArrayInputStream的構造函數是byteArrayInputStream(byte []buf),這樣的話byteArrayInputStream流的源就是名字為buf的位元組數組。明白了嗎?他們的明顯的區別就是源和目的地不同。希望能幫助你
㈣ java中tobytearray的用法
你好,System.out.println(dis.readInt());
執行的這里,就等待輸入了,導致輸出流阻塞,所以就沒有輸出了。
㈤ java 里的 ByteArrayInputStream 與ObjectInputStream
ByteArrayInputStream 作為參數提供給 ObjectInputStream 是沒有問題的,你的程序唯一不對的地方是不應該將 new byte[1024];一個沒有內容的byte數組 做為輸入參數提供給 ByteArrayInputStream ,ObjectInputStream 是要讀取對象的,那麼自然輸入也應該是一個對象的位元組數組,而很明顯 String.getBytes 並不能返回作為字元串對象的位元組數組,僅是該字元串對象內容的位元組數組。
try {
ByteArrayOutputStream bos = new ByteArrayOutputStream(100);
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject( "asdfsad ");
byte [] bytes = bos.toByteArray();
InputStream s = new ByteArrayInputStream(bytes);
ObjectInputStream ois = new ObjectInputStream(s); //something wrong here
} catch (IOException e) {
e.printStackTrace();
}
㈥ java的bytearrayInputStream有什麼用
這是內存中處理流的一個對象。
構造函數中
ByteArrayInputStream(byte[] buf,
int offset,
int length)
Creates ByteArrayInputStream
that uses buf as its
buffer array.
是byte[]對應的」段「,從offset開始、到+length結束
㈦ 請問 java ByteArrayOutputStream不close會怎樣
/**
*Closinga<tt>ByteArrayOutputStream</tt>hasnoeffect.Themethodsin
*
*generatingan<tt>IOException</tt>.
*<p>
*
*/
publicvoidclose()throwsIOException{
}
復制了一段源碼,可以看出來這里是個空實現的方法。所以位元組數組其實是關不掉的,因為不會佔用什麼資源,JDK里有這個方法是為了一種好的編程習慣准備的。