IO中read()方法解释 IO中read()方法解释read()方法 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个read()的放回类型必须是int。你去看j2se的api上面有。 估计是int比较通用 直接用byte可能会有问题 把byte存在int里也不会精度丢失 对返回的-1进行判断啊,通常用while循环,读出文件中的数据。举个例子:public static byte[] readInputStream(InputStream instream) throws Exception { ByteArrayOutputStream baos = new ByteArrayOutputStream(); byte[] buffer = new byte[1 * 1024]; int length = 0; while(-1 != (length = instream.read(buffer))){ baos.write(buffer, 0, length); } instream.close(); return baos.toByteArray(); } 返回值是读入缓冲区的总字节数,用int更方便些吧,不然你和-1比较的时候,还是要转成int吧! 他问的应该是int read(),不是int read(byte[] buf) int read()方法读一个字节,那么这个字节的范围就可能是-128 ~ 127(byte类型的范围),包括了-1,如果返回值为byte,那我问你如何表示已读到流末尾?如果返回一个byte类型的-1,那它到底是数据,还是表示流末尾?所以当然只能用范围比byte大的类型表示,而short实际上空间占用和int一样,而且Java默认数值类型是int,所以为了方便,直接返回int类型,当返回值是-1时表示流结束,返回值是0 ~ 255时表示数据。你所说的8个1表示-1是完全错误的想法,read方法返回的是字节,不是位,8个字节1就是8个字节1,8位1才是无符号数值255,有符号数值-1。 他问的应该是int read(),不是int read(byte[] buf)应该是我理解错了 运行出现如下异常 Java数组类型转换 老师给了一条java复习题不会做,高分求救 split的用法 java 作的窗口,要求在同一个窗口中显示不同的panel, 怎么显示不出来呢??在线等候大虾帮忙,谢谢!! java 如何连接数据库 急,今天公司给我出的一个难题? 想上手学Java,大哥们推荐几本好书来!!!! 请教一个Java测试类的“出现预期不符”的原因. final(结局)关键字是什么意思呢? spring mvc问题 java有关汉字字节判断的问题(面试题)
public static byte[] readInputStream(InputStream instream) throws Exception {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1 * 1024];
int length = 0;
while(-1 != (length = instream.read(buffer))){
baos.write(buffer, 0, length);
}
instream.close();
return baos.toByteArray();
}