![](/img/trans.png)
[英]problem of the class Scanner in java when Input an integer and multiline string
[英]Problem with Scanner class in java
我使用FileOutputStream
class 在文件中寫入了一些二進制數據。 現在我想用Scanner
class 閱讀它,但它不能。 是否可以使用掃描儀 class 讀取二進制文件? 如果是,那么如何?
編輯:
I solve it by in.nextline();
要讀取二進制文件,您可以將 DataInputStream 或 ByteBuffer 與 NIO 一起使用。
現在我想用掃描儀 class 閱讀它,但它不能。
這是一個正確的觀察。 Scanner 不會讀取二進制數據,它不是為此目的而設計的。 掃描儀希望獲得一個實現Readable接口的 object,其合同規定只能返回字符。 它可以接受 InputStream, 但正如 API 所述:來自 stream 的字節使用底層平台的默認字符集轉換為字符。
是否可以使用掃描儀 class 讀取二進制文件? 如果是,那么如何?
按照前面的解釋,這是不可能的,除非您以某種方式編寫它們,以便上述轉換字節的過程返回字符。 如果您需要從 stream 訪問二進制數據,則需要避免使用Readers和 Readable 對象。 您需要處理原始InputStreams或FilterInputStreams ,這將返回字節 arrays 或合適的對象。 在您的特定情況下,您將需要一個FileInputStream 。
提示:
您是否閱讀過 API 文檔?
一個簡單的文本掃描器,可以使用正則表達式解析原始類型和字符串。
http://download.oracle.com/javase/1,5.0/docs/api/java/util/Scanner.html
這可能會幫助您:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.