我是个java初学者,写了一段代码,但是输出结果很令我吃惊,请大家指教:
package IO.src;import java.io.*;public class BufferedInputStreamTest extends BufferedInputStream{
public BufferedInputStreamTest(InputStream in ,int size){
super(in);
byte buf[]=new byte[size];
this.count=size;
System.out.print(super.count);
}
public static void main(String args[])throws IOException{
File f=new File("g:\\iinn.txt");
FileInputStream in=new FileInputStream(f);
BufferedInputStreamTest bt=new BufferedInputStreamTest(in,2);
while(bt.available()>0){
byte b[]=new byte[8];
bt.read(b);
System.out.println(new String(b));
}
System.out.println("缓冲区大小为:"+bt.count+"...");
}}
输出结果为:super.count=2; bt.count=48;为什么会是这样?还有就是 read(byte[])方法是从数据流中读取制定个数得到数组中还是从缓冲数组BufferedInputStream 的buf[]中读取?
package IO.src;import java.io.*;public class BufferedInputStreamTest extends BufferedInputStream{
public BufferedInputStreamTest(InputStream in ,int size){
super(in);
byte buf[]=new byte[size];
this.count=size;
System.out.print(super.count);
}
public static void main(String args[])throws IOException{
File f=new File("g:\\iinn.txt");
FileInputStream in=new FileInputStream(f);
BufferedInputStreamTest bt=new BufferedInputStreamTest(in,2);
while(bt.available()>0){
byte b[]=new byte[8];
bt.read(b);
System.out.println(new String(b));
}
System.out.println("缓冲区大小为:"+bt.count+"...");
}}
输出结果为:super.count=2; bt.count=48;为什么会是这样?还有就是 read(byte[])方法是从数据流中读取制定个数得到数组中还是从缓冲数组BufferedInputStream 的buf[]中读取?
解决方案 »
- 三色旗算法求其深解!!
- javamail 问题,高手过来帮忙啊。。。。。。。
- 想用applet调用dll文件,应该如何做?
- java最终的文件格式是什么啊???
- 请教各位,初学者用什么工具编写Java程序比较好
- 那里可以免费下载java类库(完整的)
- 这是jbuilder6的bug还是windows的问题?
- 哪位有jbwheel(让JBuilder支持鼠标滚轮的东东)
- 用jcreator怎么单步调试程序?
- java的性能-急需解决!!!
- 同舟共济:请问这个程序内部的流程是怎么样的??(就是说程序怎么一步一步走的)
- request.getParameter()得到的数值为'6',如何转换成int型
BufferedInputStream中的内置byte[] buf是会改变的,When necessary, it may be replaced by another array of a different size.
read(byte[])方法是从数据流中读取制定个数得到数组中