在java中将字符串字节[]转换为原始字节[]

在java中将字符串字节[]转换为原始字节[],java,string,bytearray,Java,String,Bytearray,如果我有一个字节[],它以这种格式保存字符串: abcd 546546545 dfdsfdsfd 5415645 我知道这些数字是整数型的。使用String.split()方法从中提取原始byte[]的最佳方法是什么?此答案基于以下假设(根据您发布的内容,这些假设都没有明确的依据): 您当前正在直接从文件中读取字节 该文件存储在VM的默认编码中 您希望忽略所有不是十进制数字的内容 您希望生成一个字节[],其中每个字节包含与文件中的十进制数字对应的数值 根据这些假设,我将按如下方式解决此问题

如果我有一个
字节[]
,它以这种格式保存字符串:

abcd 546546545 dfdsfdsfd 5415645

我知道这些数字是整数型的。使用
String.split()
方法从中提取原始
byte[]
的最佳方法是什么?

此答案基于以下假设(根据您发布的内容,这些假设都没有明确的依据):

  • 您当前正在直接从文件中读取字节
  • 该文件存储在VM的默认编码中
  • 您希望忽略所有不是十进制数字的内容
  • 您希望生成一个
    字节[]
    ,其中每个字节包含与文件中的十进制数字对应的数值
根据这些假设,我将按如下方式解决此问题:

public byte[] getDigitValues(String file) throws IOException {
    FileReader rdr = new FileReader(file);
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    try {
        rdr = new BufferedReader(rdr);
        for (char c = rdr.read(); c != -1; c = rdr.read()) {
            if (c >= '0' && c <= '9') {
                bos.write(c - '0');
            }
        }
    } finally {
        if (rdr != null) {
            try { rdr.close(); }
            catch (IOException e) {
                throw new IOException("Could not close file", e);
            }
        }
    }
    return bos.toByteArray();
}

你能举一个例子说明你想如何转换它,因为你有很多方法可以做到这一点吗?“dfdsfdsfd”是一个整数吗?你为什么不想使用split?请重新表述你的问题。这没有多大意义。
字节[]
如何保存字符串?“原始
字节[]
”是什么意思?
byte[]
如何保存像
546546545
这样的整数值?如果有一个
byte[]
包含要转换为
byte[]
长度一半(忽略空格)的hexi十进制数对,这是有意义的我正在将文件中的字符串读入字节数组,然后我想将其转换为原始字节@TedHoppIn Java,字符串通常读入
char[]
。要将它们读入
字节[]
,需要使用编码。(我怀疑您只是在使用文件的编码;如果是这样,您需要让我们知道正在使用什么编码。)我仍然不知道您所说的“原始字节”是什么意思。一个字节就是一个字节;什么使字节成为“原始”?您的意思是要将每个十进制数字的数值存储在单独的字节中吗?非数字字符呢?谢谢,谢谢你的回答!
public byte[] getDigitValues(String file) throws IOException {
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    try (Reader rdr = new BufferedReader(new FileReader(file))) {
        for (. . .
    }
    return bos.toByteArray();
}