Java 原生API


二进制文件复制

import java.io.*;

public class FileCopy_Bit {
       private static File fileSrc = new File( "src.dat");
       private static File fileTarget = new File( "target.dat");
       public static void main (String[] args) throws IOException{
            BufferedInputStream input = new BufferedInputStream(new FileInputStream(fileSrc));
            BufferedOutputStream output = new BufferedOutputStream(new FileOutputStream(fileTarget));
             try{
                   while(true ){
                        output.write(input.read());
                  }
            }
             catch(EOFException ex){
            }
             catch(IOException ex){
                  ex.printStackTrace();
            }
            input.close();
            output.close();
            System.out.println( "The file is aleardy copied" );
      }

}

文本文件复制

import java.io.*;

public class FileCopy_text {
       private static File fileSrc = new File( "src.txt");
       private static File fileTarget = new File( "targte.txt");
       public static void main(String[] args) throws IOException{
            BufferedReader input = new BufferedReader(new InputStreamReader(new FileInputStream(fileSrc)));
            BufferedWriter output = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileTarget)));
            String str = "";
             while((str=input.readLine()) != null)
                  output.write(str);
            input.close();
            output.close();
            System.out.println( "The file is aleardy copies" );
      }

}

使用 FileCopyUtils 快速复制文件


可以使用 commons-io 的 FileCopyUtils 提供的方法快速将一个输入流复制到输出流

public void copyStream(InputStream inputStream ,OutputStream outputStream){
	FileCopyUtils.copy(inputStream,outputStream);
}

在此基础上,可以实现将一个文件的输入流快速复制到输出流

public void copyStreamFromFile( File srcFile ,OutputStream outputStream){
	 FileCopyUtils.copy(new FileinputStream(srcFile),outputStream);
}

在此基础上,可以实现将一个文件快速复制到到另一个文件;