我正在尝试编写一个程序,其中我使用多个线程将多个文件复制到我PC中的单个位置。
我的输入将是文件的路径(在我的PC中)0作为命令行参数。我得把多个文件同时拷贝到电脑的某个文件夹里。
文件源是命令行输入文件目的地应该是我pc上的一个新文件夹。需要知道如何给目标路径作为目录,也输入作为命令行参数这是我要调用的方法
private static void copyFileUsingChannel(File source, File dest) throws IOException {
FileChannel sourceChannel = null;
FileChannel destChannel = null;
try {
sourceChannel = new FileInputStream(source).getChannel();
destChannel = new FileOutputStream(dest).getChannel();
destChannel.transferFrom(sourceChannel, 0, sourceChannel.size());
}finally{
sourceChannel.close();
destChannel.close();
}
如果要使用命令行,请检查主方法中的args[]数组
public static void main( String args[] ){
if( args.length >= 2 ){
File source = new File(args[0]);
File dest = new File( args[1] );
// Check files
if( source.exists() && source.isDirectory() ){
// continue check here
}else{
// args[0] is not a directory or does not exists
}
}
}
如果需要遍历文件,只需使用。
File[] files = source.listFiles();
for( File file : files ){
if( file.isDirectory() ){
// do stuff
}
}