㈠ 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里有这个方法是为了一种好的编程习惯准备的。