在java中将字符串写入字节数组

时间:2014-10-30 17:47:07

标签: java

过去几个小时,这一直困扰着我。 我有一个长字符串,我想将其转换为字节数组。 我也希望保留前导零。 尝试过DatatypeConverter& BigInteger方法似乎无法获得正确的结果。 这是一个字节数组(十六进制字节值)。

byte[] array = str.getBytes();

这似乎也不起作用,所有这些方法我似乎得到了字符串的十进制表示。我需要它是十六进制。

这就是我现在正在使用的内容:

String line;   
line = file.readLine();   
long seq = Long.parseLong(line);   
String hexx = Long.toHexString(seq);   
byte[] out = hexx.getBytes();

BTW,我使用BufferdReader进行输入,使用RandomAccessFile进行输出。 任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

好的,从一个基数转换为另一个基数。天哪!

String str = ...
int fromRadix = ...
int toRadix = ...
String out = new BigInteger(str, fromRadix).toString(toRadix);

例如,要转换十进制数" 12345"到十六进制:

String str = "12345";
int fromRadix = 10;
int toRadix = 16;
String out = new BigInteger(str, fromRadix).toString(toRadix);
// yields "3039"

走开! :P

答案 1 :(得分:0)

好的,我想我已经通过使用BigInteger和它的toByeArray方法解决了这个问题。

  BigInteger linenum = new BigInteger(line,10);
  writer.write(linenum.toByteArray());

实际上是简单的解决方案,感谢您的努力。