23種設計模式---介面卡模式
阿新 • • 發佈:2018-11-01
package com.bjpowernode.demo03;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
/**
- 轉換流
- InputStreamReader/OutputStreamWriter
- 當讀寫的文字檔案編碼格式與當前環境的編碼格式不一樣時, 就使用轉換流
- 這兩個類採用了 介面卡設計模式
- @author Administrator
*/
public class Test03 {
public static void main(String[] args) throws IOException {
// readFile();
writeFile();
}
//把文字寫到d:/hehe.txt檔案中, 要求檔案使用GBK編碼, 當前環境使用UTF-8 private static void writeFile() throws IOException { OutputStream out = new FileOutputStream("d:/hehe.txt"); //以GBK編碼把字元轉換為位元組流,輸出到out中 OutputStreamWriter osw = new OutputStreamWriter(out, "GBK"); osw.write("hello"); osw.write("\r\n"); osw.write("也可以寫中文的字串, 檔案的編碼是GBK格式"); osw.close(); } // 讀取d:/out.txt檔案, 該檔案使用GBK編碼, 當前環境使用UTF-8編碼 private static void readFile() throws IOException { InputStream in = new FileInputStream("d:/out.txt"); //以GBK編碼把 位元組流in中的位元組轉換為字元 InputStreamReader isr = new InputStreamReader(in, "GBK"); int cc = isr.read(); while( cc != -1){ System.out.print((char)cc); cc = isr.read(); } isr.close(); }
}