用户输入文件/目录

时间:2016-10-26 11:06:20

标签: input java-io

我正在尝试创建一个能够将文件从一个目录复制到另一个目录的程序,但是我需要让用户选择该文件,然后输入该目录。我该怎么做?

这是我到目前为止所做的:

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

  }
}

1 个答案:

答案 0 :(得分: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()) { ...这样的代码看起来不太好,因为无论是哪种方式都可以进入 if 语句,您只需调用copyfile.createNewFile()