鴻蒙OS OutputStreamWriter

2022-10-24 10:46 更新

OutputStreamWriter

java.lang.Object

|---java.io.Writer

|---|---java.io.OutputStreamWriter

public class OutputStreamWriter
extends Writer

OutputStreamWriter 是從字符流到字節(jié)流的橋梁:寫入其中的字符使用指定的字符集編碼為字節(jié)。 它使用的字符集可以由名稱指定,也可以顯式給出,或者可以接受平臺的默認字符集。

每次調用 write() 方法都會導致對給定字符調用編碼轉換器。 結果字節(jié)在寫入底層輸出流之前累積在緩沖區(qū)中。 可以指定此緩沖區(qū)的大小,但默認情況下它對于大多數(shù)用途來說足夠大。 請注意,傳遞給 write() 方法的字符不會被緩沖。

為了獲得最高效率,請考慮將 OutputStreamWriter 包裝在 BufferedWriter 中,以避免頻繁的轉換器調用。 例如:

 Writer out
   = new BufferedWriter(new OutputStreamWriter(System.out));

代理項對是由兩個 char 值的序列表示的字符:在 '\uD800' 到 '\uDBFF' 范圍內的高代理項,然后是在 '\uDC00' 到 '\uDFFF' 范圍內的低代理項。

畸形的替代元素是高替代元素之后沒有低替代元素或低替代元素之前沒有高替代元素。

這個類總是用字符集的默認替換序列替換格式錯誤的代理元素和不可映射的字符序列。 當需要對編碼過程進行更多控制時,應使用 CharsetEncoder 類。

Since:

JDK1.1

字段摘要

從類 java.io.Writer 繼承的字段
lock

構造函數(shù)摘要

構造函數(shù) 描述
OutputStreamWriter(OutputStream out) 創(chuàng)建一個使用默認字符編碼的 OutputStreamWriter。
OutputStreamWriter(OutputStream out, String charsetName) 創(chuàng)建一個使用命名字符集的 OutputStreamWriter。
OutputStreamWriter(OutputStream out, Charset cs) 創(chuàng)建一個使用給定字符集的 OutputStreamWriter。
OutputStreamWriter(OutputStream out, CharsetEncoder enc) 創(chuàng)建一個使用給定字符集編碼器的 OutputStreamWriter。

方法總結

修飾符和類型 方法 描述
void close() 關閉流,首先刷新它。
void flush() 沖洗流。
String getEncoding() 返回此流使用的字符編碼的名稱。
void write(char[] cbuf, int off, int len) 寫入字符數(shù)組的一部分。
void write(int c) 寫入單個字符。
void write(String str, int off, int len) 寫入字符串的一部分。
從類 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
從類 java.io.Writer 繼承的方法
append, append, append, write, write

構造函數(shù)詳細信息

OutputStreamWriter

public OutputStreamWriter(OutputStream out, String charsetName) throws UnsupportedEncodingException

創(chuàng)建一個使用命名字符集的 OutputStreamWriter。

參數(shù):

參數(shù)名稱 參數(shù)描述
out 輸出流
charsetName 支持的字符集的名稱

Throws:

Throw名稱 Throw描述
UnsupportedEncodingException 如果不支持命名編碼

OutputStreamWriter

public OutputStreamWriter(OutputStream out)

創(chuàng)建一個使用默認字符編碼的 OutputStreamWriter。

參數(shù):

參數(shù)名稱 參數(shù)描述
out 輸出流

OutputStreamWriter

public OutputStreamWriter(OutputStream out, Charset cs)

創(chuàng)建一個使用給定字符集的 OutputStreamWriter。

參數(shù):

參數(shù)名稱 參數(shù)描述
out 輸出流
cs 一個字符集

Since:

1.4

OutputStreamWriter

public OutputStreamWriter(OutputStream out, CharsetEncoder enc)

創(chuàng)建一個使用給定字符集編碼器的 OutputStreamWriter。

參數(shù):

參數(shù)名稱 參數(shù)描述
out 輸出流
enc 一個字符集編碼器

Since:

1.4

方法詳情

getEncoding

public String getEncoding()

返回此流使用的字符編碼的名稱。

如果編碼具有歷史名稱,則返回該名稱; 否則返回編碼的規(guī)范名稱。

如果此實例是使用 OutputStreamWriter(java.io.OutputStream,java.lang.String) 構造函數(shù)創(chuàng)建的,則返回的名稱(對于編碼是唯一的)可能與傳遞給構造函數(shù)的名稱不同。 如果流已關閉,此方法可能會返回 null。

返回:

此編碼的歷史名稱,如果流已關閉,則可能為 null

write

public void write(int c) throws IOException

寫入單個字符。

覆蓋:

在 Writer 類中寫

參數(shù):

參數(shù)名稱 參數(shù)描述
c int 指定要寫入的字符

Throws:

Throw名稱 Throw描述
IOException 如果發(fā)生 I/O 錯誤

write

public void write(char[] cbuf, int off, int len) throws IOException

寫入字符數(shù)組的一部分。

指定者:

在 Writer 類中寫

參數(shù):

參數(shù)名稱 參數(shù)描述
cbuf 字符緩沖區(qū)
off 開始寫入字符的偏移量
len 要寫入的字符數(shù)

Throws:

Throw名稱 Throw描述
IOException 如果發(fā)生 I/O 錯誤

write

public void write(String str, int off, int len) throws IOException

寫入字符串的一部分。

覆蓋:

在 Writer 類中寫

參數(shù):

參數(shù)名稱 參數(shù)描述
str 一個字符串
off 開始寫入字符的偏移量
len 要寫入的字符數(shù)

Throws:

Throw名稱 Throw描述
IOException 如果發(fā)生 I/O 錯誤

flush

public void flush() throws IOException

沖洗流。

指定者:

在接口 Flushable 中刷新

指定者:

在 Writer 類中刷新

Throws:

Throw名稱 Throw描述
IOException 如果發(fā)生 I/O 錯誤

close

public void close() throws IOException

從班級復制的描述:Writer

關閉流,首先刷新它。 一旦流被關閉,進一步的 write() 或 flush() 調用將導致拋出 IOException。 關閉以前關閉的流沒有效果。

指定者:

在接口 AutoCloseable 中關閉

指定者:

在接口Closeable中關閉

指定者:

關閉類 Writer

Throws:

Throw名稱 Throw描述
IOException 如果發(fā)生 I/O 錯誤
以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號