如果我有byte []
以这种格式保存字符串:
abcd 546546545 dfdsfdsfd 5415645
我知道这些数字是整数类型。使用byte[]
方法获取原始String.split()
的最佳方法是什么?
答案 0 :(得分:1)
这个答案是基于以下假设(没有明确保证你发布的内容):
byte[]
,其中每个字节包含与文件中找到的小数位对应的数值根据这些假设,我会解决这个问题如下:
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();
}
在Java 7中,我使用try-with-resources statement:
public byte[] getDigitValues(String file) throws IOException {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
try (Reader rdr = new BufferedReader(new FileReader(file))) {
for (. . .
}
return bos.toByteArray();
}