Java复制一个文件

创建一个SafeCopy程序来复制一个文件。这个程序可以在命令行中接收源文件名和目标文件名。只有当目标文件不存在时,程序才将源文件复制到现在要创建的目标文件去,即不覆盖原来已存在的文件。
原理上,这个程序很简单:要创建DataInputStream和DataOutputStream对象,复制源文件的每个字节到目标文件中去。现在,我们可以在创建一个输入流或输出流之前,用File类提供的方法来检查一个文件是否存在。
copyFile()方法使用readByte()和writeByte()来将输入文件中的每个字节复制到输出文件,所以,要用缓冲流来改善程序的效率,如果不使用缓冲流速度就会很慢。

import java.io.*;
public class SafeCopy{
    public static void copyFile(DataInputStream in,
        DataOutputStream out)throws IOException{
        try{
            while (true)
                out.writeByte(in.readByte());
        } catch(EOFException eof) {
            return; 
        }
    }
    public static void main(String args[]){
        if (args.length != 2)
            System.out.println("Usage: java SafeCopy sourceFile targetFile");
        else{
            String inFileName  = args[0], outFileName = args[1];
            File inFile = new File(inFileName);
            File outFile = new File(outFileName);
            if (!inFile.exists())
                System.out.println(inFileName + " does not exist.");
            else if (outFile.exists())
                System.out.println(outFileName + " already exists.");
            else{
                try{
                    DataInputStream in = new DataInputStream(
                        new BufferedInputStream(
                        new FileInputStream(inFileName)));
                    DataOutputStream out = new DataOutputStream(
                        new BufferedOutputStream(
                        new FileOutputStream(outFileName)));
                    copyFile(in, out);
                    in.close();
                    out.close();
                }catch(IOException ioe) {
                    System.out.println("Unknown error: " + ioe); 
                }
            }
原创文章 66 获赞 39 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_44739495/article/details/103602690