一段拷贝功能代码
import java.io.File;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.FileOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.FileNotFoundException;
/**文件拷贝代码*/
public class StreamDemo01{
public static void main(String args[]) {
if(args.length!=2){
System.out.println("参数个数不正确");
System.exit();
}
File f1 = new File(args[0]);
File f2 = new File(args[1]);
if(!f1.exists()){
System.out.println("源文件不存在!");
}
InputStream input = null;
OutputStream out = null;
try{
input = new FileInputStream(f1);
}catch(FileNotFoundException e){
e.printStackTrace();
}
try{
out = new FileOutputStream(f2);
}catch(FileNotFoundException e){
e.printStackTrace();
}
if(input!=null && out!=null){
int temp = 0;
try{
while((temp=input.read())!=-1){
out.write(temp); //边读边写
}
System.out.println("copy success!!");
}catch(IOException e){
e.printStackTrace();
System.out.println("copy failed");
}
try{
input.close();
out.close();
}catch(IOException e){
e.printStackTrace();
}
}
}
}
InputStream中的read()方法,文档中说
int | read() Reads a byte of data from this input stream. |
从这个输入流中读取一个字节的数据,返回值却是int,岂不是浪费3个字节吗?写入到文件中的时候也得把那三个没用的字节去掉吧?否则不是浪费硬盘空间了吗?再往下是如何实现的呢?
OutputStream中的write()方法
void | write(int b) Writes the specified byte to this file output stream. |