kno*_*ads 10 java text-files file-copying
我的Java程序(C:/Users/java/dir1)下的目录下有一堆文本文件(例如ss1.txt,ss2.txt,ss3.txt等)吗?
我想将txt文件移动到尚未创建的新目录。我所有文件都有一个字符串地址,我想可以使用以下命令将它们转换为路径
路径路径= Paths.get(textPath);
将创建一个String(C:/Users/java/dir2),使用上述方法将其转换为路径,然后使用
Files.copy(C:/Users/java/dir1/ss1.txt,C:/ Users / java / dir2)
导致ss1.text被复制到新目录?
方法Files.copy(C:/Users/java/dir1/ss1.txt,C:/Users/java/dir2)不会创建目录,而是会在目录Java中创建文件dir2,该文件将包含ss1.txt数据。
您可以使用以下代码尝试:
File sourceFile = new File( "C:/Users/java/dir1/ss1.txt" );
Path sourcePath = sourceFile.toPath();
File destFile = new File( "C:/Users/java/dir2" );
Path destPath = destFile.toPath();
Files.copy( sourcePath, destPath );
Run Code Online (Sandbox Code Playgroud)
记住使用java.nio.file.Files和java.nio.file.Path。
如果要使用类形式java.nio将文件从一个目录复制到另一个目录,则应使用Files.walkFileTree(...)方法。您可以在此处查看解决方案Java:使用nio Files.copy移动目录。
或者,您可以简单地使用apache http://commons.apache.org/proper/commons-io/库中的FileUtils类(自1.2版开始可用)。
File source = new File("C:/Users/java/dir1");
File dest = new File("C:/Users/java/dir2");
try {
FileUtils.copyDirectory(source, dest);
} catch (IOException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
使用Files.createDirectories()非常简单
Path source = Path.of("c:/dir/dir-x/file.ext");
Path target = Path.of("c:/target-dir/dir-y/target-file.ext");
Files.createDirectories(target.getParent());
Files.copy(path, target, StandardCopyOption.REPLACE_EXISTING);
Run Code Online (Sandbox Code Playgroud)
并且不用担心目录是否已经存在,在这种情况下它将什么也不做,并继续前进...
| 归档时间: |
|
| 查看次数: |
12048 次 |
| 最近记录: |