OutputStreamWriter 是 java.io 類別中的一個類,用於將字元流轉換為位元組流。字元到位元組的轉換是使用已指定的字符集編碼完成的。它包含一個 write() 方法,該方法調用編碼轉換器將字元轉換為位元組流,從位元組流中將生成的位元組發送到緩衝區,在緩衝區中累積位元組並發送到輸出流。字元不經過緩衝就傳遞給 write() 方法,從而導致頻繁調用轉換器,因此與 BufferedWriter 一起使用。
開始您的免費軟體開發課程
網頁開發、程式語言、軟體測試及其他
文法:
public class OutputStreamWriter extends Writer
此語法描述了這是一個公共類,這意味著它可以從項目中的任何位置實例化。此類別是抽象類別 Writer 類別的直接子類,用於處理寫入字元流。
為了建立 OutputStreamWriter 類別的實例,我們有以下 4 種類型的建構子:
此建構函式傳回具有預設字元編碼的 OutputStreamWriter 實例。這是建立實例的最簡單方法。
範例:
FileOutputStream fileObj = new FileOutputStream (String path); //
這是 OutputStream 的一個實例。
OutputStreamWriter output = new OutputStreamWriter (fileObj);//
上面的實例作為參數傳遞,以指定需要寫入輸出的檔案。
此建構子傳回使用指定字元集的 OutputStreamWriter 實例。這裡指定的字元集可以像Charset.forName(“UTF8”)一樣,建立一個字元集實例作為方法的參數。
範例:
OutputStreamWriter output = new OutputStreamWriter (fileObj,Charset.forName ( "UTF8"));
此建構子傳回使用指定字元集編碼器的 OutputStreamWriter 實例。
範例:
CharsetEncoderencoder = B2CConverter.UTF_8.newEncoder () OutputStreamWriter output = new OutputStreamWriter (fileObj, encoder);
此建構子傳回使用指定字元集名稱的 OutputStreamWriter 實例。
範例:
OutputStreamWriter output = new OutputStreamWriter (fileObj,"UTF-8");
這裡,用於將字元流轉換為位元組流的字元集名稱是“UTF-8”。
1。 close ():- 此方法有助於在刷新流後關閉流。不需要任何參數,且該方法不會傳回任何內容。
文法
public void close ()
2。 lush ():- 此方法有助於刷新流。不需要任何參數,且此方法不會傳回任何內容。
文法
public void flush ()
3。 getEncoding ():- 此方法有助於擷取給定 OutputStreamWriter 實例使用的字元集編碼的名稱。呼叫方法時無需傳遞任何參數。
文法
public String getEncoding ()
傳回實例所使用的編碼名稱的字串表示形式。
4。 write (char[] charbuf, int off, int len):- 此方法有助於寫入從偏移位置開始且長度為 'len' 的字元陣列的特定部分。如果發生這種情況,此方法會拋出 IOException任何輸入都不正確或為空。
文法
public void write (char[] charbuf, int off, int len)
此方法只是將轉換後的位元組流寫入輸出檔。它不會返回任何內容。
5。 write (int ch):- 此方法用於將單一字元寫入指定其 ASCII 字元的流。如果給出的任何輸入不正確或為 null,此方法將拋出 IOException。
文法
public void write (int ch)
此方法只是將轉換後的位元組流寫入輸出檔。它不會返回任何內容。
6。 write(String str, int off, int len):- 此方法用於將以給定偏移量和給定長度開始的字串的一部分寫入流。
Syntax
public void write (String strObj, int offset, int lgth)
This method just writes the converted byte stream to the output file. It does not return anything.
Below the examples of Java OutputStreamWriter:
import java.io.*; public class StreamDemo { public static void main (String[] args) { String data = "LetsLearnOuptputStreamClass"; try { OutputStream file = new FileOutputStream ("abc.txt"); OutputStreamWriter outObj = new OutputStreamWriter (file); FileInputStream inFileObj = new FileInputStream ("abc.txt"); outObj.write (data, 5, 6); outObj.flush (); System.out.println ( "Name of Encoding used here is : " + outObj.getEncoding ()); for (int i = 0; i<6; i++) { System.out.println ( "Character written is : " + (char) inFileObj.read()); } outObj.close (); } catch (Exception ex) { System.out.println ( "Error Occurred"); ex.printStackTrace (); } } }
Output:
import java.io.*; public class StreamDemo { public static void main (String[] args) { try { OutputStream g = new FileOutputStream ( "C:/Users/savij/Desktop/abc.txt"); OutputStreamWriter outObj = new OutputStreamWriter (g); FileInputStream in = new FileInputStream ( "C:/Users/savij/Desktop/abc.txt"); outObj.write (69); outObj.write (68); outObj.write (85); outObj.write (67); outObj.write (66); outObj.write (65); outObj.flush (); for (int i = 0; i< 6; i++) { System.out.println ( "The char being written: " + (char) in.read()); } outObj.close (); } catch (Exception ex) { System.out.println ( "Error"); ex.printStackTrace (); } } }
Output:
//package Proc; import java.io.*; public class StreamDemo { public static void main (String[] args) { char[] data = {'E','D','U','C','B','A'}; try { OutputStream file = new FileOutputStream ( "abc.txt"); OutputStreamWriter outObj = new OutputStreamWriter (file); FileInputStream inFileObj = new FileInputStream ( "abc.txt"); outObj.write (data,2, 4); outObj.flush (); for (int i = 0; i<4; i++) { System.out.println ( "Character written is : " + (char) inFileObj.read()); } outObj.close (); } catch (Exception ex) { System.out.println ( "Error Occurred"); ex.printStackTrace (); } } }
Output:
OutputStreamWriter is a utility that acts as a bridge from the character stream to a byte stream. It contains a write method that takes input in the form of characters and converts them into bytes using the specified charset or charset encoder for e.g., UTF-8. This class’s efficiency and performance can be enhanced if BufferredWriter is being used instead of Writer to write the resultant byte stream to the output streams.
以上是Java 輸出流寫入器的詳細內容。更多資訊請關注PHP中文網其他相關文章!