当前位置: 代码迷 >> J2SE >> 关于java位元数组和ByteArrayInputStream的两个小疑点
  详细解决方案

关于java位元数组和ByteArrayInputStream的两个小疑点

热度:10043   发布时间:2013-02-25 00:00:00.0
关于java位元数组和ByteArrayInputStream的两个小问题
小弟初学Java,下面有两个小小的问题想要请教,望各位耐心为小弟指点一二!(注:【。。。】为有疑问的地方)
[code=Java][/code]
File file = new File(args[0]); 
BufferedInputStream bufferedInputStream = 
new BufferedInputStream( 
new FileInputStream(file)); 

// 将文件读入位元数组 
ByteArrayOutputStream arrayOutputStream = 
new ByteArrayOutputStream(); 
【byte[] bytes = new byte[1];】
while(bufferedInputStream.read(bytes) != -1) {
arrayOutputStream.write(bytes);
}
【arrayOutputStream.close();】 
bufferedInputStream.close(); 

// 显示位元数组内容 
【bytes = arrayOutputStream.toByteArray();】 
【for(byte b : bytes)】 {
System.out.print((char) b);
}
问题:一,【byte[] bytes = new byte[1];】明明是定义了只有一个位元的数组,为什么这里【for(byte b : bytes)】像是已经将文件的所有内容都输入了里面?
二,【arrayOutputStream.close();】 输出流关闭之后还能进行【bytes = arrayOutputStream.toByteArray();】 这样的操作吗?

------解决方案--------------------------------------------------------
Java code
while(bufferedInputStream.read(bytes) != -1) {arrayOutputStream.write(bytes);}