黑马程序员技术交流社区
标题:
自定义缓冲字节流的问题
[打印本页]
作者:
新新人类嘿嘿嘿
时间:
2014-9-7 22:53
标题:
自定义缓冲字节流的问题
看完视频,模仿毕老师定义了一个自定义缓冲字节流,但总是文件复制不了,大神们帮看看哪出问题了啊?
自定义类代码如下:
public class MyBufferInputStream {
private InputStream inputStream;
public MyBufferInputStream(InputStream inputStream){
this.inputStream=inputStream;
}
private int pos=0,count=0;
private byte[] buf=new byte[1024*4];
public int myRead() throws IOException{
count=inputStream.read(buf);
if (count==0) {
byte b=buf[pos];
if (count<0) {
return -1;
}
pos++;
count--;
return b&255;
}else if (count>0) {
byte b=buf[pos];
pos++;
count--;
return b&255;
}
return -1;
}
public void myClose() throws IOException{
inputStream.close();
}
}
测试类代码:
FileInputStream inputStream=new FileInputStream("e:\\99.jpg");
MyBufferInputStream bf=new MyBufferInputStream(inputStream);
FileOutputStream outputStream=new FileOutputStream("e:\\00.jpg");
BufferedOutputStream of=new BufferedOutputStream(outputStream);
int ch;
while ((ch=bf.myRead())!=-1) {
of.write(ch);
}
of.close();
bf.myClose();
作者:
付江涛
时间:
2014-9-7 23:12
把count=inputStream.read(buf);定义到 if (count==0) 代码块里面,不然每调用一次myRead(),取一个元素,就又重新读一组数组
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2