当前位置: 首页 > 面试题库 >

Java中的移动/复制文件操作

阎声
2023-03-14
问题内容

是否有一个标准的Java库可以处理常见的文件操作,例如移动/复制文件/文件夹?


问题答案:

这是通过java.nio操作执行此操作的方法:

public static void copyFile(File sourceFile, File destFile) throws IOException {
    if(!destFile.exists()) {
        destFile.createNewFile();
    }

    FileChannel source = null;
    FileChannel destination = null;
    try {
        source = new FileInputStream(sourceFile).getChannel();
        destination = new FileOutputStream(destFile).getChannel();

        // previous code: destination.transferFrom(source, 0, source.size());
        // to avoid infinite loops, should be:
        long count = 0;
        long size = source.size();              
        while((count += destination.transferFrom(source, count, size-count))<size);
    }
    finally {
        if(source != null) {
            source.close();
        }
        if(destination != null) {
            destination.close();
        }
    }
}


 类似资料:
  • 你可以使用复制任务( Copy )去复制文件. 复制任务扩展性很强,能够过滤复制文件的内容, 映射文件名. 使用复制任务时需要提供想要复制的源文件和一个目标目录,如果你要指定文件被复制时的转换方式,可以使用 复制规则. 复制规则被 CopySpec 接口抽象,复制任务实现了这个接口. 使用 CopySpec.from() 方法指定源文件.使用 CopySpec.into() 方法指定目标目录. 例

  • 所以,我有一个文本文件中的文件列表。我相信大约有100000个文件。 上述列表中的文件分布在许多目录中,具有不同的大小、文件名、扩展名、年龄等。 我正试图找到一种方法来移动这些文件,只是那些,到另一个驱动器。 复杂因素:一些文件具有相同的名称,但不是同一个文件。不能只将它们移动到一个文件夹中,并对多个文件夹执行覆盖或忽略策略。 最好,我希望他们保留他们的目录结构,但只在目标目录中包含我想要的文件。

  • Entry和FileEntry均有copyTo和moveTo方法用来复制和移动目录和文件。 Entry.copyTo(newEntry, 'new_Entry_name', function(copiedEntry){ console.log('Entry moved.'); }, errorHandler); Entry.moveTo(newEntry, 'new_Entry_name

  • 让我们来看看一些简单的移动可构造和(不是简单的)复制可构造(但仍然是复制可构造的)用户定义(类)类型: 然后,的移动(move-construction或move-assignment)从字面上表示如下:源按位复制到目标,尽管操作名为“move”。在琐碎的移动过程中,右手边(形式上)不是,但整个操作的琐碎性要求右手边(实际)不可变,不是吗?在我看来,这意味着,琐碎的复制操作和琐碎的移动操作在本质上

  • 我正在尝试使用Java复制文件。我有一个需要复制的文件对象的arraylist,但是当实际复制发生时,目标文件夹会变成一个文件,不会复制任何东西

  • 问题 你想要复制或移动文件和目录,但是又不想调用shell命令。 解决方案 shutil 模块有很多便捷的函数可以复制文件和目录。使用起来非常简单,比如: import shutil # Copy src to dst. (cp src dst) shutil.copy(src, dst) # Copy files, but preserve metadata (cp -p src dst)