字節流和字符流
回答
流是順序訪問文件的一種方式。一個字節流逐字節地訪問該文件。字節流適用於任何類型的文件,但不適用於文本文件。例如,如果文件使用的是Unicode編碼,並且字符由兩個字節表示,則字節流將分開處理這些字符,您需要自行完成轉換。
字符流將逐個字符地讀取文件。字符流需要被賦予文件的編碼才能正常工作。
儘管Microsoft Word文檔包含文本,但無法使用字符流(它不是文本文件)進行訪問。您需要使用字節流來訪問它。
感謝kgiannakakis, 和.txt文件呢? – JavaUser 2010-06-10 11:58:46
字符流適合讀取.txt文件。但正如我所說,你需要知道文本文件的編碼。 – kgiannakakis 2010-06-10 12:00:19
我在詢問有關.txt文件存在於Windows操作系統中 – JavaUser 2010-06-10 12:04:19
閱讀this。它告訴你字節和字符之間的區別(以及其他有用的東西的加載)
1.面向字符與數據類型綁定。只有字符串類型或字符類型可以通過它讀取,而面向字節的不綁定到任何數據類型,任何數據類型的數據都可以被讀取(字符串除外),只是必須指定它。
2.Character取向由字符讀取字符而面向字節由字節讀取字節
3.Character定向流使用字符編碼方案(UNICODE),而面向不使用任何編碼方案
4字節。面向字符的流也被稱爲讀取器和寫入流 面向字節流被稱爲數據流,數據流的輸入和輸出的數據流
字節流:
從Oracle文檔頁面約byte streams:
程序使用字節流來執行的8位字節的輸入和輸出。所有的字節流類都是從
InputStream
和OutputStream
開始的。
何時使用:
字節流只能用於最原始的I/O
當不使用:
您不應該使用字節流來讀取字符流
例如,要讀取文本文件
字符流:
從Oracle文檔頁面約character streams:
Java平臺存儲字符使用Unicode約定值。字符流I/O自動將此內部格式轉換爲本地字符集和從本地字符集轉換。
所有的字符流類都是從Reader
和Writer
開始的。
字節流通常是字節流的「包裝」。字符流使用字節流來執行物理I/O,而字符流處理字符和字節之間的轉換。
有兩個通用的字節到字符「橋」流:InputStreamReader
和OutputStreamWriter
。
何時使用:
要閱讀的字符流的無論是從Socket
或字符
的File
總結:
字節流讀取和寫入一字節一次。在處理更復雜的數據時,我們必須避免使用字節流。
字符流和其他可用的流應該用來處理複雜的數據。
這些概念總是很神祕。 [問題](https://stackoverflow.com/q/46953036/3317808) – overexchange 2017-10-26 11:56:31
字符流將逐字符地讀取文件。字符流能夠讀取16位字符(字節流讀取8位字符)。字符流能夠將8位數據隱式轉換爲16位數據,反之亦然。字符流可以支持ASCII,Unicode,UTF-8,UTF-16等所有類型的字符集。但字節流只適用於ASCII字符集。Java平臺使用Unicode約定存儲字符值。字符流I/O自動將此內部格式轉換爲本地字符集和從本地字符集轉換。
除非您正在處理二進制數據,例如圖像和聲音文件,否則您應該使用讀寫器來讀取和寫入字符流的信息。
- 1. Java - 字符和字節流
- 2. Java - 字節流與字符流?
- 3. C++字節流
- 4. 流到UTF8字符串,沒有字節[]
- 5. Telnet流的字節到字符轉換
- 6. 將無符號字節流轉換爲有符號字節流Golang
- 7. Java讀取文件,字節流和字符流之間的性能差異
- 8. 把字符串和字符在流中
- 9. 將int字節流轉換爲浮點字節流
- 10. POST文件流八位字節流
- 11. 讀取線和字節[]從輸入流
- 12. MIME,八位字節流和Uploadify
- 13. Indy TCPClient和InputBuffer中的流氓字節
- 14. stringio.write和+ =上的字節流不同
- 15. Python中的字節流和utf-8 3
- 16. 字節流單元測試
- 17. 流PDF到字節數組
- 18. 流字節,下載失敗
- 19. pycurl READFUNCTION與字節流
- 20. 在字節流混亂
- 21. C#字節流通過TCP
- 22. C#WebResponse流丟失字節?
- 23. 流到字節數組
- 24. Kinect字節流太大
- 25. h.264字節流解析
- 26. 跟蹤java字節碼流
- 27. 從Mina.MessageReceived()讀取字節流
- 28. 檢查千字節的流
- 29. 圖像字節流操作
- 30. java中的字節流
親愛的downvoter - 請鼓勵作者提供更好的問題,留下一個不**爲什麼**你決定downvote(個人我沒有看到一個強有力的理由) – 2010-06-10 11:57:16
打開記事本中的MS Word文檔。你看到了什麼?垃圾就像當你在記事本中打開一個'exe'一樣?它會然後是二進制數據:) – BalusC 2010-06-10 11:57:18
我投這篇文章,因爲我從帖子中看到的是字節流和字符流之間的混淆。使用記事本解釋問題是沒有意義的。在我看來,傲慢者非常傲慢。 – Paul 2011-09-06 07:22:49