byte []
この形式の文字列を保持する がある場合:
abcd 546546545 dfdsfdsfd 5415645
数値が整数型であることはわかっています。byte[]
メソッドを使用せずに生を取得する最良の方法は何String.split()
ですか?
この回答は、次の仮定に基づいています (投稿した内容から明確に保証されているものはありません)。
byte[]
各バイトにファイル内の 10 進数に対応する数値が含まれるを生成したいこれらの仮定を使用して、この問題を次のように解決します。
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 ステートメントを使用します。
public byte[] getDigitValues(String file) throws IOException {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
try (Reader rdr = new BufferedReader(new FileReader(file))) {
for (. . .
}
return bos.toByteArray();
}