您的位置:首页 > 编程语言 > Java开发

java复制文件到指定目录

2016-11-07 10:38 746 查看
数据采集过程中,将数据分别采集到了两个电脑中,需要将两个文件放入一个文件夹中,因此,需要写一个复制目标文件到指定文件夹的代码,于是开始了撸代码过程。

开始时候,想偷懒,copy个程序改改就这样吧,于是参考了这篇文章 ,做出了第一版的代码,

package balltest;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class DataCopy {
public static void main(String[] args) {
//for(int i = 20 ; i<=103 ; i++){
int i = 20;
String sour = "D:\\数据\\第二次试验湿磨\\" +String.valueOf(i)+"\\";
String dest = "E:\\湿式球磨机数据采集\\第二次试验\\湿磨\\"+String.valueOf(i)+"\\";;
copyFile(sour , dest);
//}
}

private static void copyFile(String sour, String dest) {
File sourFile =new File(sour);
String  filename = sourFile.list()[0];

String inputname = sour+filename;
String outputname = dest+filename;

try{
FileInputStream input  = new FileInputStream(inputname);
FileOutputStream output = new FileOutputStream(outputname);

int in  = input.read();

while(in!=-1){
output.write(in);
in = input.read();
}

}catch(IOException e){
e.printStackTrace();
}

}
}


这显然就是个都出来,然后再写进去,太复杂了,当时只测试了一个文件180m居然5分钟没有完,于是想到了linux中的cp命令,要是windows可以写shell就好了,突然想到DOC也有copy命令,可以试试,于是就有了下图:

最后使用Runtime.getRuntime()来处理这些命令,最终程序如下:

package balltest;

import java.io.File;

public class DataCopyCmd {
public static void main(String[] args) {
for(int i = 20 ; i<=103 ; i++){
String sour = "D:\\数据\\第二次试验湿磨\\" +String.valueOf(i)+"\\";
String dest = "E:\\湿式球磨机数据采集\\第二次试验\\湿磨\\"+String.valueOf(i)+"\\";;
copyFile(sour , dest);
}
}

private static void copyFile(String sour, String dest) {
//获取进程
Runtime run = Runtime.getRuntime();
Process p = null;
//得到目标文件名
File sourFile =new File(sour);
String  filename = sourFile.list()[0];
String inputname = sour+filename;
String command = "cmd /c copy  "+inputname+"  "+dest;
System.out.println(command);
//执行doc命令
try {
p = run.exec(command);
} catch (Exception e) {
e.printStackTrace();
}

}
}


效果不错,15Gd数据秒完
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 复制