使用FileSystem输出到zip文件的Java图像为空

花花公子

我目前正在尝试将图像文件复制到现有的zip文件中(如附加文件)。但是输出为空(意味着:该文件实际上甚至存在-仅显示为占用0个字节,并且无法打开/提取)。

这是我的代码示例:

Map<String, String> env = new HashMap<>();
env.put("create", "true");
Path path = Paths.get("countMap.zip");
java.net.URI uri = java.net.URI.create("jar:" + path.toUri());

try (FileSystem fs = FileSystems.newFileSystem(uri, env)) {

Path nf = fs.getPath("mario.png");

try (OutputStream zos = Files.newOutputStream(nf, StandardOpenOption.CREATE)) {

            Files.createFile(nf, null);

            Files.copy(nf, zos);

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

编辑:

当我调试Java组件时,看起来一切都会好起来的。我想知道将临时文件复制到最终文件目的地是否会出现问题。

花花公子

好,我有问题。

Files.copy(nf, zos);

根本不起作用。所以我尝试使用流:

final byte[] bytes = new byte[1024];
int read = 0;

while ((read = inputStream.read(bytes)) != -1) {
zos.write(bytes, 0, read);
}
zos.close();

效果不佳。但有趣的是(我对众议院MD很明智:-))我刚遇到一个有类似问题的朋友。在他的情况下,文件编写器未输出任何内容-或一半。当然很奇怪。但是他的问题是,他忘记关闭流。

所以我看了看我的代码-一切都很好。但是后来我开始尝试有趣的解决方案,只是删除了close()-并且成功了!当然很奇怪。而且根本无法预料。但是至少我的案子现在已经解决了。有人认为这可能是JAVA中的错误吗?也许知道如何正确举报?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用FileSystem输出到zip文件的Java图像为空

来自分类Dev

无法输出到文本文件,文件为空

来自分类Dev

如何使用java将输出输出到文件?

来自分类Dev

输出到文件,然后使用文件输入

来自分类Dev

Java jar文件输出上的php exec为空数组

来自分类Dev

图像文件为空

来自分类Dev

C标准输出到使用dup的文件

来自分类Dev

显示PPID并使用top输出到文件

来自分类Dev

使用Makefile输出到多个文件

来自分类Dev

使用PHP输出为图像

来自分类Dev

捕获标准输出到拉链和使用CTRL-C中断给出了一个损坏的zip文件

来自分类Dev

Linux / Bash-为“查找”创建循环以输出到文件

来自分类Dev

将一定数量的行输出到新文件,以创建新的编号文件,直到原始文件为“空”为止

来自分类Dev

cURL输出到文件

来自分类Dev

cURL输出到文件

来自分类Dev

输出到.dat文件

来自分类Dev

输出到文件并读取

来自分类Dev

Excel输出到文件

来自分类Dev

Nightwatch XML输出文件为空

来自分类Dev

jsPDF输出文件为空

来自分类Dev

使用文件描述符输出到文件

来自分类Dev

获取空输出到变量

来自分类Dev

如何将FLV编码为一个临时文件,然后使用FFMpeg将其输出到stdout?

来自分类Dev

Eclipse和Java中的空zip文件为我带来了增量贬值

来自分类Dev

输出到文件,不使用PHP使用jpeg的标头

来自分类Dev

Java-数组输出为空

来自分类Dev

Java-数组输出为空

来自分类Dev

搜索 java 文件中的行并使用批处理脚本输出到另一个文件

来自分类Dev

Java读取文件并将其输出到控制台