gpt4 book ai didi

java - 在 Java 中反转文件(图像、音乐)会损坏文件

转载 作者:太空宇宙 更新时间:2023-11-04 13:43:30 24 4
gpt4 key购买 nike

我编写了一个程序,它输入一个文件,反转字节并将其写入另一个文件。然后。它反转反转的文件并将其输出到另一个文件中。然而,最终,当我应该再次获取相同的文件时,它却被损坏了。我查了一下,没有找到解决办法。

反转代码正在工作。我已经测试过了。如果您告诉我我做错/遗漏了什么,我会非常高兴。

try {
URL image = new URL(path);
fis = image.openStream();
fos = new FileOutputStream(output);
while (-1 != (b = fis.read(bytes))) {
sum += b;
System.out.println("Bytes being written: " + b);
fos.write(bytes, 0, b);
}
JOptionPane.showConfirmDialog(null, "File " + new File(output).getAbsoluteFile() + " successfully downloaded.\n File size in bytes is :" + sum);
//Algorithm part
cSum = sum;
System.out.println("Byte size=" + sum);
sum = 0;
cBytes = new byte[cSum];
revBytes = new byte[cSum];
bais = new ByteArrayInputStream(cBytes);
revBytes = CDIP.algo(cBytes);
fos = new FileOutputStream("Reversed" + output);
while (-1 != (b = bais.read(revBytes))) {
sum += b;
System.out.println("Reversed bytes being written: " + b);
fos.write(revBytes, 0, b);
}
JOptionPane.showConfirmDialog(null, "File successfully reversed! Size(in bytes): " + sum);

---反转方法

private static byte[] algo(byte[] text) {
if(text==null) {
return null;
}
int length = text.length;
for (int i = 0; i <= length / 2; i++) {
byte temp = text[length - i - 1];
text[length - i -1] = text[i];
text[i] = temp;
}
return text;
}

最佳答案

写入所有内容后关闭fos。这可确保所有内容都写入磁盘。

然后从文件中读取字节,为此有一个简单的函数:

byte[] bytes = Files.readAllBytes(Paths.get("..."));

关于java - 在 Java 中反转文件(图像、音乐)会损坏文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31075800/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com