在java中将十六进制字符串保存到File.hex

在java中将十六进制字符串保存到File.hex,java,file,hex,decimal,Java,File,Hex,Decimal,我有一个包含十六进制值的字符串。现在我想把这个字符串写入一个以.hex结尾的文件。如何在java中实现这一点 我已经尝试将十六进制值转换为ASCII,然后将此字符串写入文件。 但所有高于127(dec)的十六进制值都无法正确处理 86(十六进制)转换为?(char),即3F(十六进制)而不是86(十六进制)。您可以尝试获取字符串的每个字符,将其转换为整数,然后在文件中写入字节值。要执行相反的过程,只需将文件读入一个字节数组,并将每个字节转换为一个字符来检索字符串。然后,我相信您可以找到一些算法将

我有一个包含十六进制值的字符串。现在我想把这个字符串写入一个以.hex结尾的文件。如何在java中实现这一点

我已经尝试将十六进制值转换为ASCII,然后将此字符串写入文件。 但所有高于127(dec)的十六进制值都无法正确处理


86(十六进制)转换为?(char),即3F(十六进制)而不是86(十六进制)。

您可以尝试获取字符串的每个字符,将其转换为整数,然后在文件中写入字节值。要执行相反的过程,只需将文件读入一个字节数组,并将每个字节转换为一个字符来检索字符串。然后,我相信您可以找到一些算法将字符串转换为十六进制字符串。

对我来说,答案是:

在Projectproperties下,我需要将文本文件编码设置为ISO-8859-1。 然后我的旧程序运行得很好

public static String hexToASCII(String hex){        
 if(hex.length()%2 != 0){
    System.err.println("requires EVEN number of chars");
    return null;
 }
 StringBuilder sb = new StringBuilder();                
 for( int i=0; i < hex.length()-1; i+=2 ){
     String output = hex.substring(i, (i + 2));
     int decimal = Integer.parseInt(output, 16);
   sb.append((char)decimal); 
 }            
 return sb.toString();
}
公共静态字符串hexToASCII(字符串hex){
如果(十六进制长度()%2!=0){
System.err.println(“需要偶数个字符”);
返回null;
}
StringBuilder sb=新的StringBuilder();
对于(int i=0;i
public static void WriteHexString(OutputStream name,String s)抛出IOException{DataOutputStream output=new DataOutputStream(name);int out=0;for(int i=0;i)