使用输入和输出流阅读器不会在Java中复制文件

时间:2017-02-06 07:50:06

标签: java

我在Java平台上工作。我需要将包中的文件复制到桌面上的某些文件夹中。我正在使用输入流和输出流类来完成它,它在NetBeans中做得非常好。

问题是,当我运行JAR文件来测试应用程序时,它没有复制文件,而是说NULL。

       File source = new File("src/jrepo/css/bs.css");

       File dest = new File(ResultPath + "/css/bs.css");

        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();
        }

2 个答案:

答案 0 :(得分:1)

你的问题在于

new File("src/jrepo/css/bs.css");

File(String)的构造函数获取文件的完整路径。您正在使用相对路径。如果您尝试从操作系统中读取文件,请使用完整路径。如果您从jar文件中读取它,请改用this approach

答案 1 :(得分:0)

我发现自从使用JavaFX以来,有一个问题是停止CSS文件的文件复制。要解决该问题,只需在Netbeans中更改项目的运行时设置。右键单击项目标题→转到属性→构建→打包→取消选中二进制编码JavaFX CSS文件复选框,然后保存项目并重建它。