2016-10-26 80 views
0

我想创建一个程序能够将文件从一个目录复制到另一个目录,但我需要让用户选择文件并输入目录。我怎么做?用户输入文件/目录

这是我迄今所做的:

import java.io.*; 


public class FileCopy { 

    public static void main(String[] args) { 

     File file = new File("."); 
     File copyfile = new File("."); 

     BufferedReader reader; 
     PrintWriter writer; 
     String line; 

     try{ 
      if (copyfile.createNewFile() || !copyfile.createNewFile()) { 
       reader = new BufferedReader (new FileReader(file)); 
       writer = new PrintWriter(new FileWriter(copyfile)); 
      while ((line = reader.readLine()) !=null){ 
       writer.println(line); 
       } 
      reader.close(); 
      writer.close(); 

      } 
     }catch(IOException ioEx){ 
      System.err.println("I could not copy the file to a destination directory"); 

     } 
    enter code here 

    } 
} 

回答

0

可以使用命令行参数的用户输入文件名和目标目录。这样做写类似如下:

public static void main(String[] args) { 
    if (args.length == 0 || args.length > 2) { 
     System.err.println("Invalid arguments, enter a file path and a destination directory."); 
    } 

    File file = new File(args[0]); 
    if (!file.isFile()) { 
     System.err.println("First argument must be a file."); 
    } 
    if (!new File(args[1]).isDirectory()) { 
     System.err.println("Second argument must be a directory"); 
    } 

    File copyfile = new File(args[1], file.getName()); 
    ... 

除此之外,你不必创建一个新的文件,copyfile.createNewFile(),则FileWriter的文件文件)构造函数会为你。另外,if (copyfile.createNewFile() || !copyfile.createNewFile()) { ...这样的代码看起来不太好,因为如果声明以任何方式进入,您可以拨打copyfile.createNewFile()

相关问题