用java将字符串写入字节数组

用java将字符串写入字节数组,java,Java,这几个小时来一直困扰着我。 我有一个长字符串,我想把它转换成字节数组。 我也想保留前导零。 尝试过DatatypeConverter和BigInteger方法,但似乎无法得到正确的结果。 这是一个字节数组(十六进制字节值) 这似乎也不起作用,使用所有这些方法,我似乎得到了字符串的十进制表示。我需要它是十六进制的 这就是我现在正在使用的: String line; line = file.readLine(); long seq = Long.parseLong(line); S

这几个小时来一直困扰着我。 我有一个长字符串,我想把它转换成字节数组。 我也想保留前导零。 尝试过DatatypeConverter和BigInteger方法,但似乎无法得到正确的结果。 这是一个字节数组(十六进制字节值)

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

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

String line;   
line = file.readLine();   
long seq = Long.parseLong(line);   
String hexx = Long.toHexString(seq);   
byte[] out = hexx.getBytes();
顺便说一句,我使用BufferdReader进行输入,使用RandomAccessFile进行输出。
任何帮助都将不胜感激。

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

String str = ...
int fromRadix = ...
int toRadix = ...
String out = new BigInteger(str, fromRadix).toString(toRadix);
例如,要将十进制数字“12345”转换为十六进制:


走开P

好的,我想我已经用BigInteger和Tobyeraray方法解决了这个问题

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

实际上,这是一个简单的解决方案,感谢各位的努力。

您的问题不清楚(字符串的十进制表示形式是什么?)。添加输入预期输出您的前导
0
s正在消失,原因是
Long.parseLong()
输入文件是一个充满数字值的ASCII文件。我希望输出为二进制文件。十进制表示法意味着字符串包含大量ASCII字符,所有数字为0-9。因此,如果文件包含
12345
,字节表示法应该是什么?类似于
[0x01,0x02,0x03,0x04,0x05]
?不,对不起。也许我不清楚,我想把整个字符串从十进制转换成十六进制,然后写入文件。这个字符串中是什么?数字的十六进制表示(如“011ABF”)或类似“你好,世界”?如果是十六进制数,这就行了。实际的ASCII字符为0-9。@reset:每个字符都有自己的字节,或者每个字节有两个字符?伙计,你需要更清楚地表达自己!如果我知道你在哪里(如果我更刻薄的话),我现在就掐死你!因此,您只需要将一个基数(基数16、基数10等)转换为另一个基数。这意味着您正在从一个文本转换到另一个文本。你只需要一个不同的文本表示法,这并不能满足你的要求。见我的(新)答案。
String str = "12345";
int fromRadix = 10;
int toRadix = 16;
String out = new BigInteger(str, fromRadix).toString(toRadix);
// yields "3039"
  BigInteger linenum = new BigInteger(line,10);
  writer.write(linenum.toByteArray());