---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
面向对象
字节流缓冲区
BufferedInputStream
BufferedOutputStream
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class Test{
public static void main(String...args)throws IOException{
BufferedInputStream is = new BufferedInputStream
(new FileInputStream("C:\\1.mp3"));
BufferedOutputStream os = new BufferedOutputStream
(new FileOutputStream("D:\\1.mp3"));
for(int by = 0;(by=is.read())!=-1;){
os.write(by);
}
is.close();
os.close();
}
}
IO流(自定义字节流的缓冲区-read和write的特点)
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
class MyBufferedInputStream{
private InputStream in;
private byte[] buf =new byte[1024];
private int pos;
private int count;
MyBufferedInputStream(InputStream in){
this.in=in;
}
public int myRead()throws IOException{
if(count==0){
count=in.read(buf);
if(count<0)
return -1;
pos=0;
byte b = buf[pos];
pos++;
count--;
return b&255;
}
else if(count>0){
byte b = buf[pos];
pos++;
count--;
return b&0xff;
}
return -1;
}
public void myClose()throws IOException{
in.close();
}
}
public class Test{
public static void main(String...args) throws IOException{
long start = System.currentTimeMillis();
copy();
long end = System.currentTimeMillis();
System.out.println(end-start);
}
public static void copy()throws IOException{
MyBufferedInputStream bufis = new MyBufferedInputStream
(new FileInputStream("C:\\1.avi"));
BufferedOutputStream bufos = new BufferedOutputStream
(new FileOutputStream("C:\\2.avi"));
for(int len=0;(len=bufis.myRead())!=-1;){
bufos.write(len);
}
bufis.myClose();
bufos.close();
}
}
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------