2016-10-26 61 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()

相關問題