我得到了一个文件的字节数组字符串,希望每个字节都减去 2 或类似的值,然后再加 2。我想这样做:
byte buffer[] = new byte[(int) file.length()];
try {
in = new FileInputStream(file);
in.read(buffer);
for(int i = 0; i < buffer.length; i++){
buffer[i] = (byte) (buffer[i]-2); // and then later +2
}
}
但是这不起作用。首先,它像我想要的那样更改文件,但后来当我将整个文件+2时,它给了我一些其他奇怪的东西。
所以我想要这个:
- 获取一个名为
buffer
的字节数组 - 然后更改一些值
- 改回这些值
- 获取与之前相同的文件
最佳答案
您的代码中有一些错误:
new byte[(int) file.length()];
这将最终导致 OutOfMemoryError 或文件读取损坏in.read(buffer);
这只会读取文件的一些字节。- 您将此问题标记为“加密”。这根本不是加密。 “解密”内容非常容易。
你的文件长度还是一样吗?
关于java - byte - 2 然后下次 +2 不起作用...为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13382674/