gpt4 book ai didi

java - 在 NodeJs 中编写 Java.class 文件(保留魔数(Magic Number))

转载 作者:行者123 更新时间:2023-12-02 05:00:13 25 4
gpt4 key购买 nike

我有一个服务器可以替换文件中的一些字符串。它看起来像这样:

var stringToBeReplacedWith = "Cool text";

var data = fs.readFileSync(file, 'utf-8');

var RegExp = new RegExp("Stringtobereplaced", 'g'); // global search
data = fileContents.replace(RegExp, stringToBeReplacedWith);

fs.writeFileSync(file, data);

代码通过 Mime 类型/编码更改来工作。

如何确保在替换字符串时保留 Mime-Type?我注意到有很多库可以读取 mimetype,但(到目前为止)我还没有找到执行相反操作的库。

最佳答案

这是因为 .class 文件是二进制的。您正在以 UTF-8 字符串的形式读取文件。因此,当您将其写回时,它会将其写为格式错误的 UTF-8 字符串(因此魔数(Magic Number)发生变化)。

只要您不尝试替换多字节字符,您就可以更改

var data = fs.readFileSync(file, 'utf-8');

var data = fs.readFileSync(file, 'binary');

fs.writeFileSync(file, data);

fs.writeFileSync(file, data, { encoding: 'binary' });

fs.writeFileSync(file, new Buffer(data, 'binary'));

它应该按您的预期工作。

关于java - 在 NodeJs 中编写 Java.class 文件(保留魔数(Magic Number)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28349233/

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