package demo.io;
import java.io.*;
class MyBufferedInputStream {
private InputStream in;
private byte[] buf = new byte[1024];
private int pos = 0, count = 0;
MyBufferedInputStream(InputStream in) {
this.in = in;
}
int myRead() throws IOException {
if (count == 0) {
count = in.read(buf);
if (count < 0)
return -1;
pos = 0;
byte b = buf[pos];
count--;
pos++;
return b & 0Xff;
} else {
byte b = buf[pos];
count--;
pos++;
return b & 255;
}
}
void myClose() throws IOException {
in.close();
}
}
class 模拟字节流缓冲区 {
public static void main(String[] args) {
MyBufferedInputStream bufis = null;
BufferedOutputStream bufos = null;
try {
bufis = new MyBufferedInputStream(new FileInputStream("新建位图图像.bmp"));
bufos = new BufferedOutputStream(new FileOutputStream("I:\\bb.bmp"));
int ch = 0;
while ((ch = bufis.myRead()) != -1) {
bufos.write(ch);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (bufis != null)
bufis.myClose();
if (bufos != null)
bufos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}