public class InputStreamTest {
public static void main(String[] args) throws IOException{
long begin=System.currentTimeMillis();//java.lang.System;返回以毫秒为单位的当前时间。
/**
* 采用缓冲区buffer提高效率。
*/
InputStream in =new BufferedInputStream(new FileInputStream("C:/Java/a.txt"));
byte[] buf=new byte[1024];//定义缓冲区的大小。
OutputStream out=new BufferedOutputStream(new FileOutputStream("D:/Java/a.txt"));
/**java.io.FileInputStream;
*public int read();从此输入流中读取一个数据字节。
*如果没有输入可用,则此方法将阻塞。
*返回:下一个数据字节;如果已到达文件末尾,则返回 -1。
*/
int b;
while(true){
//如果b不等于-1,就继续读取并复制文件。直到b=-1说明已读完,退出循环。
// System.out.println(b);
b=in.read(buf);
if(b==-1){
break;
}
/**java.io.FileOutputStream;
* public void write(byte[] b,int off,int len)
将指定byte数组中从偏移量off开始的len 个字节写入此文件输出流。
覆盖:类 OutputStream 中的 write。
参数:b - 数据。off - 数据中的起始偏移量。len - 要写入的字节数。
*/
out.write(buf,0,b);
}
in.close();//必须关闭保存文件。
out.close();
long end=System.currentTimeMillis();
long time=(end-begin);//计算复制文件所需时间,计算机中的时间是以毫秒为单位的。
System.out.println(time);
}
}
InputStream is = new FileInputStream(C:\Java\a.txt);
File destFile = new File("路径",文件名);
OutputStream os = new FileOutputStream(destFile);
byte[] buffer = new byte[400];
int length = 0 ;
while((length = is.read(buffer))>0){
os.write(buffer, 0, length);
}
is.close();
os.close();
那么好写! 一个打开、另一个写入
实在找不到要帮忙的理由。