关于InputStream 求大神解释!!

沁海棠 2017-04-03 03:44:12
public int read()
throws IOException从此输入流中读取一个数据字节。如果没有输入可用,则此方法将阻塞。

指定者:
类 InputStream 中的 read
返回:
下一个数据字节;如果已到达文件末尾,则返回 -1。

以前都用的是数组来读取的

用read一个一个读取
FileInputStream in = new FileInputStream(new File("f:/root2.class"));
int len = 0;
while(-1!=(len=in.read())){
System.out.print(len);
}
byte [] data = new byte[1024];
FileInputStream in2 = new FileInputStream(new File("f:/root2.class"));
while(-1!=(len=in2.read(data))){
System.out.println();
System.out.println(Arrays.toString(data));
}

为啥用read() 会返回的都是正数 而读到缓存数组中就会存在负值
求大神解释
...全文
128 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
李德胜1995 2017-04-03
  • 打赏
  • 举报
回复
read() 从输入流中读取数据的下一个字节,返回0到255范围内的int字节值....所以都是正数 read(byte[] b)从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。以整数形式返回实际读取的字节数-128-127范围

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧