package onlyfun.caterpillar;
import java.io.*;
public class StreamWriterDemo {
public static void main(String[] args) {
try {
// 「簡體中文」四個字的 GB2312 編碼
byte[] sim = {(byte)0xbc, (byte)0xf2,
(byte)0xcc, (byte)0xe5,
(byte)0xd6, (byte)0xd0,
(byte)0xce, (byte)0xc4};
// 陣列作為串流來源
ByteArrayInputStream byteArrayInputStream =
new ByteArrayInputStream(sim);
InputStreamReader inputStreamReader =
new InputStreamReader(
byteArrayInputStream, "GB2312");
// PrintWriter還接受Writer實例作為引數
PrintWriter printWriter =
new PrintWriter(
new OutputStreamWriter(
new FileOutputStream(args[0]), "GB2312"));
int in = 0;
printWriter.print("PrintWriter: ");
// 寫入陣列內容
while((in = inputStreamReader.read()) != -1) {
printWriter.print((char)in);
}
printWriter.println();
printWriter.close();
byteArrayInputStream.reset();
// PrintStream 接受OutputStream實例作為引數
PrintStream printStream =
new PrintStream(new FileOutputStream(args[0], true),
true, "GB2312");
printStream.print("PrintStream: ");
// 寫入陣列內容
while((in = inputStreamReader.read()) != -1) {
printStream.print((char)in);
}
printStream.println();
inputStreamReader.close();
printStream.close();
}
catch(ArrayIndexOutOfBoundsException e) {
System.out.println("沒有指定檔案");
}
catch(IOException e) {
e.printStackTrace();
}
}
}