各位小夥伴們大家好,在之前的文章中,小編介紹了java之轉換流的原理。這次,小編要介紹的是轉換流中的OutputStreamWriter,與及它的使用,具體如下:
java.io.OutputStreamWriter extends Writer
OutputStreamWriter:是字符通向字節流的橋梁:可以指定的charset將要寫入流中的字符編碼成字節。(編碼:能看懂的字符變為看不懂的字節)
繼承自父類的共性成員方法
1. void write(int c)寫入單個字符。
2. void write(char[] cbuf)寫入字符數組
3. abstradt void write(char[] cbuf,int off,int len)寫入字符數組的某一部分,off數組的開始索引,len字符數組個數
4. void white(String str)寫入字符串
5. void white(String str,int off,int len)寫入字符串的某一部分,off字符串的開始索引,len寫的字符串個數
6. void flush()刷新該流的緩衝
7. void close()關閉此流,但要先刷新它
構造方法
OutputStreamWriter(OutputStream out)創建使用默認字符編碼OutputStreamWriter
OutputStreamWriter(OutputStream out,String charsetName)創建使用指定字符集得OutputStreamWriter
參數:
OutputStream out:字節輸出流,可以用來寫轉換之後的字節到文件中
String charsetName:指定的編碼表名稱,不區分大小寫,可以是utf-8/UTF-8/GBK,…不指定默認使用UTF-8
使用步驟(重點):
1. 創建OutputStreamWriter對象,構造方法中傳遞字節輸出流和指定的編碼表名稱
2. 使用·OutputStreamWriter對象中的方法write,把字符轉為字節存儲到緩衝區中(編碼)
3. 使用OutputStreamWriter對象中的方法flush,把內存中的字節刷新到文件中(使用字節流寫字節的過程)
4. 釋放資源
代碼如下:
public class Demo02OutputStreamWriter {
public static void main(String args[]) throws IOException {
write_utf_8();
write_Unicode();
}
/*使用轉換流OutputStreamWriter寫Unicode格式的文件*/
private static void write_Unicode() throws IOException {
/*1.創建OutputStreamWriter對象,構造方法中傳遞字節輸出流和指定的編碼表名稱*/
OutputStreamWriter OSW=new OutputStreamWriter(new FileOutputStream("D:\\programming\\IntelliJ IDEA2018\\untitled13\\Unicode.txt"),"Unicode");
/*2.使用OutputStreamWriter對象中的方法write,把字符轉為字節存儲到緩衝區中(編碼)*/
OSW.write("橙子");
/*3.使用OutputStreamWriter對象中的方法flush,把內存中的字節刷新到文件中(使用字節流寫字節的過程)*/
OSW.flush();
//釋放資源
OSW.close();
}
/*使用轉換流OutputStreamWriter寫UTF-8格式的文件*/
private static void write_utf_8() throws IOException {
// TODO Auto-generated method stub
/*1.創建OutputStreamWriter對象,構造方法中傳遞字節輸出流和指定的編碼表名稱*/
OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("D:\\programming\\IntelliJ IDEA2018\\untitled13\\utf_8.txt"),"utf-8");
/*2.使用·OutputStreamWriter對象中的方法write,把字符轉為字節存儲到緩衝區中(編碼)*/
osw.write("hello");
/*3.使用OutputStreamWriter對象中的方法flush,把內存中的字節刷新到文件中(使用字節流寫字節的過程)*/
osw.flush();
//釋放資源
osw.close();
}
}
關於java當中轉換流,OutputStreamWriter的使用,主要是通過指定的編碼表名稱,來查詢相對應的編碼表,將字符編碼為字節存儲到緩衝區,再使用flush方法將內存中的文件刷新帶文件中。小編就先說到這裡,希望這篇文章可以幫到大家也歡迎各位小夥伴們補充和糾錯。
圖片來自網絡,如有侵權,請聯繫作者刪除