0

我有一个看起来像这样的文本文件fileName | path。我阅读了文本文件并将其拆分为|. 现在我想使用文件名和路径将文件从一个目录复制到另一个目录。

这是我到目前为止所拥有的,我得到的结果如下:

file to be copied: test.jar to path: c:/test
c:\InstallFiles\test.jar
c:\test
c:\test

这是我的代码:

    String record = "";
    FileReader fileReader = null;
    String curDir = System.getProperty("user.dir");
    File file = new File(curDir + "/InstallFiles.txt");
    File installFiles = new File("c:/InstallFiles");
    File[] files = installFiles.listFiles();
    try {
        fileReader = new FileReader(file);
        BufferedReader myInput = new BufferedReader(fileReader);
        while ((record = myInput.readLine()) != null) {
            String[] recordColumns = record.split("\\|");

            String fileName = recordColumns[0].toString().trim();
            String path = recordColumns[1].toString().trim();

            System.out.println("file to be copied: " + fileName + " to path: " + path);
            Path source = Paths.get(installFiles +"/"+ fileName);
            System.out.println(source);
            Path target = Paths.get(path);
            System.out.println(target);
            Files.copy(source, target);
            System.out.println("Copied file: " + fileName + " to " + path);
        }
        myInput.close();
        fileReader.close();
    } catch (Exception e) {
        System.out.println(e.getMessage());
    }
}
4

1 回答 1

0

最有可能的是,某种形式的IOException被抛出。我无法从您提供的信息中说出原因。

我建议您将catch块内的代码更改为:

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

这可能会产生关于错误发生原因的更好信息。


编辑:

关于为什么会出现问题的一种可能猜测是目标文件 ( c:\test) 已经存在。根据这个 javadoc 文档FileAlreadyExistsException,除非您指定一个选项,否则这将导致您得到一个REPLACE_EXISTING,而您还没有这样做。

于 2013-01-22T12:22:14.910 回答