• 【java】文件复制的简单实现


     1 package 文件操作;
     2 
     3 import java.io.File;
     4 import java.io.FileInputStream;
     5 import java.io.FileOutputStream;
     6 import java.io.IOException;
     7 import java.io.InputStream;
     8 import java.io.OutputStream;
     9 
    10 public class TestCopy {
    11     public static void main(String[] args) throws IOException {
    12         copy("D:\com\test.txt","C:\com\dest.txt");
    13     }
    14     public static void copy(String source,String dest) throws IOException{
    15         File fileS=new File(source);
    16         File fileD=new File(dest);
    17         if(fileS.exists()){
    18             InputStream in=new FileInputStream(fileS);
    19             int len=(int)fileS.length();
    20             byte[] b=new byte[len];
    21             in.read(b);//一次性读入
    22             in.close();            
    23             
    24             if(!(fileD.exists())){                
    25                 fileD.getParentFile().mkdirs();
    26                 fileD.createNewFile();                
    27             }
    28             OutputStream out=new FileOutputStream(fileD);
    29             out.write(b);//一次性写出
    30             out.close();
    31         }else{
    32             System.out.println(source+"文件不存在!");
    33         }    
    34     }
    35 }
    一次性读入和写出
     1 package 文件操作;
     2 
     3 import java.io.File;
     4 import java.io.FileInputStream;
     5 import java.io.FileOutputStream;
     6 import java.io.IOException;
     7 import java.io.InputStream;
     8 import java.io.OutputStream;
     9 
    10 public class TestCopy {
    11     public static void main(String[] args) throws IOException {
    12         copy(args[0],args[1]);
    13     }
    14     public static void copy(String source,String dest) throws IOException{
    15         File fileS=new File(source);
    16         File fileD=new File(dest);
    17         if(fileS.exists()){
    18             InputStream in=new FileInputStream(fileS);
    19             if(!(fileD.exists())){                
    20                 fileD.getParentFile().mkdirs();
    21 //                fileD.createNewFile();//此语句可省,会自动创建        
    22             }
    23             OutputStream out=new FileOutputStream(fileD);
    24             int b=0;
    25             while((b=in.read())!=-1)
    26                 out.write(b);//一次读入写出一个字节,此方式太慢!
    27             in.close();
    28             out.close();
    29         }else{
    30             System.out.println(source+"文件不存在!");
    31         }    
    32     }
    33 }
    一次读入写出一个字节
     1 package 文件操作;
     2 
     3 import java.io.File;
     4 import java.io.FileInputStream;
     5 import java.io.FileOutputStream;
     6 import java.io.IOException;
     7 import java.io.InputStream;
     8 import java.io.OutputStream;
     9 
    10 public class TestCopy {
    11     public static void main(String[] args) throws IOException {
    12         if(args.length!=2){
    13             System.out.println("源文件或目标文件个数不对,请确认!");
    14             System.exit(1);
    15         }        
    16         File sourceFile=new File(args[0]);
    17         if(sourceFile.exists()){
    18             File destFile=new File(args[1]);
    19             if(!destFile.getParentFile().exists())//只需要判断目录是否存在,因为目录不存在不会自动创建,文件不存在会自动创建
    20                 destFile.getParentFile().mkdirs();
    21             InputStream in=new FileInputStream(sourceFile);
    22             OutputStream out=new FileOutputStream(destFile,true);
    23             byte[] bytes=new byte[10240];
    24             int len=0;
    25             while((len=in.read(bytes))!=-1)
    26                 out.write(bytes,0,len);
    27             in.close();
    28             out.close();
    29         }else{
    30             System.out.println("源文件不存在!");
    31         }
    32     }
    33 }
    改善版
  • 相关阅读:
    Maven pom.xml中添加指定的中央仓库
    命令行远程链接MySQL
    A required class was missing while executing org.apache.maven.plugins:maven-war-plugin:2.1.1:war
    mvn deploy命令上传包
    保存好你的密码
    PuTTY免输密码自动登录Linux
    ActiveMQ无法启动
    linux控制台批量杀进程
    dubbo入门之微服务客户端服务端配置
    dubbo入门之helloWorld
  • 原文地址:https://www.cnblogs.com/xiongjiawei/p/6684203.html
Copyright © 2020-2023  润新知