为什么我的 FileInputStream 中有 -1 字节?



当我使用FileInputStream读取照片时,我发现其中有一个"-1"。

这是src。

public class Main {
public static void main(String[] args) throws Throwable {
long stt = System.currentTimeMillis();
String file = "test/dlk.png", to = "test/test.png", output = file + ".bncchain.zip";
byte[] password = "DLK IS SO HANDSOME".getBytes();
String chainName = "dlk";
try (BNCChuckChainOutputStream out = new BNCChuckChainOutputStream(new FileOutputStream(output), chainName, password, 16384); FileInputStream in = new FileInputStream(file)) {
in.transferTo(out);
}
long edt = System.currentTimeMillis();
System.out.println("Encrypt TimeUsed:" + (edt - stt) + " ms");
stt = System.currentTimeMillis();
try (BNCChuckChainInputStream in = new BNCChuckChainInputStream(new FileInputStream(output), chainName, password); FileOutputStream fos = new FileOutputStream(to)) {
in.transferTo(fos);
}
edt = System.currentTimeMillis();
System.out.println("Decrypt TimeUsed:" + (edt - stt) + " ms");
}
}

这里有两个文件原始文件&错误文件

我认为"BNCChuckChainOutputStream"one_answers"BNCCchuckChainInputStream"都能正确运行,因为我使用了调试工具calc.输入和输出的md5,它们是等价的

[onWritePrtSc][3]

[3] :https://gitee.com/Bread_NiceCat/bread_nicecat/raw/master/ERRT(R(X9VVO%7BTNE%EF%BF%BD%5BMT0.png

已解决:(字节(255=&gt-1

我调试了整个InputStream,发现它使用int作为数据保护程序。然而,我使用byte[]来保存大量数据。

相关内容

最新更新