簡體   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