【发布时间】:2022-03-28 03:54:32
【问题描述】:
我试图创建一种压缩/解压缩算法,现在我正在考虑如何写下它的解压缩十六进制代码。
我试图将它转换为一个字节数组,但发生了一些奇怪的事情:
即使解压缩的十六进制字符串和原始文件相等,结果文件也比原始文件大。当我尝试打开它时,它给了我Compatibility issue with current Windows version
要创建解压缩的 exe 并在其中写入十六进制代码,我使用了以下代码:
有什么建议吗?FileOutputStream stream=new FileOutputStream("Hello2.exe");
stream.write(hex.getBytes());
stream.close();
【问题讨论】:
-
hex的内容是什么? -
@Sizik In hex 包含转换为 hex 的 exe 文件的二进制数据。 exe 文件只打印 hello world
-
那么,例如,如果二进制数据是
{0x61, 0x73, 0x64, 0x66},那么十六进制字符串是"61736466",还是"asdf"? -
@Sizik 好吧,我想是的,我只是从文件中读取并使用此转换读取的字节:
String.format("%02X",buffer[i])其中缓冲区是一个字节数组。