gpt4 book ai didi

java - 在Java中替换所有文件类型中的字符串

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

我想将所有文件类型尤其是二进制文件中的字符串 A 替换为字符串 B。我尝试过这个:

byte[] fileContent= Files.readAllBytes(file.toPath());
String content= new String(fileContent,charset);
content=content.replace(A,B);
byte[] result= content.getBytes(charset);
Files.write(file.toPath(), result);

但它不适用于 JPG 等二进制文件。对于 txt 文件,效果很好。

然后我写了这个:

            byte[] fileContent= Files.readAllBytes(file.toPath());

char[] charBuffer=new char[fileContent.length];

for(int i=0;i<fileContent.length;i++)
{
charBuffer[i]=(char)fileContent[i];
}

String content=new String(charBuffer);
content=content.replace(chainA, chainB);

charBuffer=content.toCharArray();
fileContent=new byte[charBuffer.length];

for(int i=0;i<charBuffer.length;i++)
{
fileContent[i]=(byte)charBuffer[i];
}

效果很好。我的问题是:有没有更好的方法来替换二进制和txt文件中的两个字符串?

为什么我的第一个代码不能处理二进制文件?

最佳答案

这样的事情应该有效:

Charset isoCharset = Charset.forName ("ISO-8859-1");
byte[] fileContent = Files.readAllBytes (file.toPath ());
String.content = new String (fileContent, isoCharset);
content = content.replace (chainA, chainB);
fileContent = content.getBytes (isoCharset);

当然,它假设您在创建 Charset 对象之前知道正确的编码。

关于java - 在Java中替换所有文件类型中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30195493/

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