2012-09-01 66 views
1

我是一個java新手。何時使用字節流或字符流來讀取/寫入文本

據我所知,必須使用字符流讀/寫字符和字節流來讀/寫字節。

但是,我也可以使用字節流來讀取/寫入字符。

我也明白,使用國際通用的應用程序時,首選字符流。

  1. 你可以給出一些關於何時在讀/寫'文本'數據時使用字符流與字節流的建議嗎?

  2. 可以使用字符流簡單閱讀word/excel/pdf文檔中的文本嗎?

  3. 何時以及如何在使用字符編碼(如UTF-8/Western/ISO)的同時讀取外部創建的文本數據? (對不起,這是模糊的問題...但請幫助)

在此先感謝。

+0

[應該單獨詢問多個問題](http://meta.stackexchange.com/questions/39223/one-post-with-multiple-questions-or-multiple-posts)。 – Jeffrey

回答

2

通常如果你只是想讀這樣的文件並將它發送到別的地方或guardrlo總是最好用於字節。

建議使用緩衝區來處理字節的文件,例如「BufferedOutputStream」。

另一方面,如果您需要使用閱讀內容文本總是建議知道「編碼」你會得到。最通用的選項是「BufferedReader」,使用此選項,您將使用具有java的「編碼」默認值。

最後評論說你無法讀取文件Work,Excel等......因爲他們格式化,所以你需要的工具可以讓你閱讀,我使用「Apache POI」。

問候,

+0

@Manu ....只是爲了確保我得到這個權利..從外部源接收或發送到外部源的任何文本文件可以寫入/讀取使用字節流?但是在讀寫字符時如何丟失字符(對於需要2個字節的字符)呢? – user547453

+0

不太明白你的問題,如果你以字節讀取文件並以字節爲單位發送,文件發送完全是同樣,如果你閱讀了字符並且以字符形式發送(讀者>作家),只要「編碼」是該文件被創建,請問, –

+0

其實我從你的評論中瞭解到的是,'必須'使用只是因爲從外部源接收到文本文件(字符文本)或發送到外部源。 – user547453

3
  1. 使用在讀者與作者,當你知道數據是文本。否則使用流。

  2. 不可以。您不知道數據是文本,所以請參閱(1)。