在Java中製作詞法分析器,我使用的是PushbackInputStream,因爲我需要能夠推回所讀取的內容,以防它不是我想要的。但是,只要流是空的,read()就返回-1。它不允許我使用unread()。編輯:我目前正在使用一個普通的InputStream,一次讀取它,把它放入一個堆棧,並使用堆棧作爲流,所以我可以彈出()和推()上的項目。如何在流爲空後在PushBackBufferedInputStream中使用unread()?
0
A
回答
1
我認爲你的問題是你正在使用一個crufty第三方回推流。
你可能應該使用java.io.PushbackInputStream
或java.io.PushbackReader
它有一個更明確指定的API,並且不要做特殊的事情,比如「沖洗」緩衝區。
0
如果你可以通過單個令牌前瞻和回推獲得,那麼古怪的老師StreamTokenizer
類就足夠了。它用在遞歸下降解析器的簡單implementation中。
+0
哇謝謝,但我實際上必須編碼Tokenizer自己哈哈。 – fent 2010-02-18 06:43:13
0
但是,只要流爲空,並且 read()返回-1。它不允許我 使用未讀()。
請詳細說明'不允許我使用未讀()'。從簡單的源代碼看,它應該可以正常工作。
也很想知道爲什麼你要推回EOF。
相關問題
- 1. 如何使用asp.net標記gmail UNREAD電子郵件
- 2. 如何顯示unread消息欄
- 3. 如何在使用ffmpeg php開始流之後停止流?
- 4. 如何在Image中使用它之後處理流?
- 5. MailCore2,只抓取UNREAD消息,或知道哪些是UNREAD
- 6. 如何使ImageView在使它變爲空後重新出現
- 7. 在Firefox中爲空的流水遊戲
- 8. 如何在流星中使用FontAwesome?
- 9. 如何在流中使用ICSharpCode.ZipLib?
- 10. 如何在流星中使用jQuery UI?
- 11. 如何在DynamoDB流中使用Apache Streaming
- 12. 如何在ScrollViewer中使用流佈局?
- 13. 如何在流星中使用回調?
- 14. 如何在流星中使用貓鼬?
- 15. 如何在流星中使用sendEnrollmentEmail
- 16. 如何在流星1.0中使用jQuery
- 17. 如何在流星中使用nodejs包
- 18. 如何在流明中使用papertrail
- 19. 如何在數據流中使用memcache?
- 20. 如何在GitLab中使用git流
- 21. 如何在張量流中使用tf.losses.log_loss?
- 22. 在MeteorJS中爲後端流程使用單獨的Google帳戶
- 23. 如何在PHP中使用空格後刪除所有內容?
- 24. 如何在Spark Streaming中使用無限的Scala流作爲源?
- 25. 如何在PulseAudio中使用文件/流作爲源/接收器
- 26. JPA Entity CreateTimestamp在爲空後爲空
- 27. 爲什麼在流星中使用NGINX?
- 28. 序列化後SOAP擴展流爲空
- 29. 爲什麼int不能爲空?如何在C#中使用可空int(int?)?
- 30. 如何在mongoDB中使用空數組?
糟糕!我實際上是使用java.io.PushbackInputStream。但是在發佈這篇文章時,我在學校,無法訪問我的代碼,因此無法完全記得我使用的是什麼。 – fent 2010-02-18 06:44:29