我想从一个InputStream 中读取字符串行和字节数组。我当时就是这样做的:
// stream for reading byte arrays
InputStream stream = process.getInputStream();
// reader for reading String lines
BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
String msg = reader.readLine();
// if (msg == "data16")
byte[] bytes = new byte[16];
stream.read(bytes);
当我从阅读器那里得到一行data16时,这意味着:后面是 16 个字节的字节数组。问题是,如果我尝试从流中读取字节,我会得到“data16”ASCII 码。这意味着当我使用reader 阅读时,流不会更新位置。有没有办法同步他们的位置?我知道 DataInputStream 可以同时做:读取字节数组和读取行。但它的方法已被弃用,它不能正确地将字节转换为字符。readLine
字节还可以包含 0、10 和 13 以及所有其他字节,最多 255
性能很重要,所以我真的不想逐个字节或逐个字符地阅读。另外,如果可能的话,我想避免“手动”计算读取的字节和字符以使用“跳过”方法。