用Java复制文件

时间:2018-08-20 04:19:16

标签: java file-copying

我想在启动时复制jar文件,但是在Windows 10中它具有访问被拒绝的异常 但这可以在Windows 7中使用。这是我的代码

Files.copy(source.toPath(), dest.toPath(), StandardCopyOption.COPY_ATTRIBUTES);

1 个答案:

答案 0 :(得分:1)

出于多种原因,可能会发生拒绝访问异常,但是您需要检查以下几件事:

  • 您要复制到的目标可能是问题的原因,例如,尝试将文件复制到C:\\顶级目录可能是操作系统拒绝写入权限的原因。
  • 您要复制的文件可能正在被正在运行的程序使用,请确保没有程序在使用它。
  • 您要复制到的目标位置可能不存在,请在复制文件之前确认所有父目录都存在

如果这些方法都不能解决您的问题,则可以尝试使用其他方法复制文件:

private static void copyFileUsingStream(File source, File dest) throws IOException {
    InputStream is = null;
    OutputStream os = null;
    try {
        is = new FileInputStream(source);
        os = new FileOutputStream(dest);
        byte[] buffer = new byte[1024];
        int length;
        while ((length = is.read(buffer)) > 0) {
            os.write(buffer, 0, length);
        }
    } finally {
        is.close();
        os.close();
    }
}

此外,作为将来的参考,您的问题是StackOverflow的质量相对较低。在发布自己的文章之前,请确保您正在搜索其他可能回答您问题的文章。另外,为了增加获得高质量答案的可能性,您将需要提供有关所遇到问题的更多信息-更多代码上下文,堆栈跟踪,屏幕截图,系统配置信息/其他相关信息。谢谢!