我正在設計一個庫,其中一個類應該有能力將內部轉換爲文本的能力。我應該使用哪一類:OutputStream
或Writer
?他們之間的關鍵區別是什麼(在我的情況下)?Writer或OutputStream?
public interface Memento {
void save(OutputStream stream);
void save(Writer writer);
}
哪一個?
我正在設計一個庫,其中一個類應該有能力將內部轉換爲文本的能力。我應該使用哪一類:OutputStream
或Writer
?他們之間的關鍵區別是什麼(在我的情況下)?Writer或OutputStream?
public interface Memento {
void save(OutputStream stream);
void save(Writer writer);
}
哪一個?
OutputStream
是一個面向字節的流。您編寫的任何文本必須使用某種編碼(最常見的是ISO-8859-1或UTF-8)編碼爲字節。 A Writer
是一種面向字符的流,它可能會或可能不會將字符內部編碼爲字節,具體取決於寫入的內容。
編輯如果你在設計一個圖書館,那麼如果你提供了一個OutputStream
取向的接口被寫入其中的文字,你真的應該提供客戶端類控制編碼中使用的能力。
Text? Writer
。它旨在處理字符,榮譽編碼。
流/字節數組? OutputStream
。作用於原始字節,沒有字符,編碼,字符串等的概念。
和'OutputStreamWriter'有什麼關係?它用於將字節轉換爲字符集? – UnKnown 2016-03-28 07:30:43
@UnKnown - 一個'OutputStreamWriter'是一個'Writer',恰好使用'OutputStream'作爲目的地。在編寫文本時,它將使用構建'OutputStreamWriter'時指定的任何編碼(或取決於平臺的默認編碼)將字符轉換爲字節。爲了將字節轉換爲字符,你可以使用'Reader'。 – 2016-04-28 18:30:46
作者/讀者處理字符數據,Streams處理二進制數據。 – asgs 2011-03-07 18:50:39
@asgs在一個簡單的句子中澄清我的疑惑。謝謝哈哈 – CapturedTree 2017-03-04 19:14:44