繁体   English   中英

Java-从1个InputStream读取字节和字符串

[英]Java - Read Bytes and Strings from 1 InputStream

我想从一个 InputStream读取String行和字节数组。 我当时正在这样做:

// 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码。 所以这意味着当我用阅读器阅读时,流不会更新位置。 有没有办法同步他们的位置? 我知道DataInputStream可以做到:读取字节数组和读取行。 但是不建议使用readLine方法,并且无法将字节正确转换为字符。

字节也可以包含0、10和13,以及所有其他字节,最大为255

性能很重要,所以我真的不想读取字节后字节或字符后字符。 另外,如果可能的话,我想避免“手动”计数要使用“跳过”方法的字节和字符。

我认为您将无法做自己想做的事。 the data from the InputStream. BufferedReader不仅读取新行,而且 InputStream中的数据。

最好的选择是自己完成整个操作,但是您不必一次读取一个字节,您可以将一个缓冲区读入内存并进行处理以减少实际的I / O。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM