標籤:keyword sep exception 系統 void input ack push 你好
【例子1】
import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.PushbackInputStream; /** * 回退流操作 */ public class PushBackInputStreamDemo{ public static void main(String[] args) throws IOException{ String str = "hello,rollenholt"; PushbackInputStream push = null; ByteArrayInputStream bat = null; bat = new ByteArrayInputStream(str.getBytes()); push = new PushbackInputStream(bat); int temp = 0; while((temp = push.read()) != -1){ if(temp == ‘,’){ push.unread(temp); temp = push.read(); System.out.print("(回退" + (char) temp + ") "); }else{ System.out.print((char) temp); } } }}
【運行結果】:
hello(回退,) rollenholt
【例子2】
/** * 取得本地的預設編碼 */ public class CharSetDemo{ public static void main(String[] args){ System.out.println("系統預設編碼為:" + System.getProperty("file.encoding")); }}
【運行結果】:
系統預設編碼為:GBK
【例子3】亂碼的產生:
import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; /** * 亂碼的產生 */ public class CharSetDemo2{ public static void main(String[] args) throws IOException{ File file = new File("d:" + File.separator + "hello.txt"); OutputStream out = new FileOutputStream(file); byte[] bytes = "你好".getBytes("ISO8859-1"); out.write(bytes); out.close(); }}
【運行結果】:
??
一般情況下產生亂碼,都是由於編碼不一致的問題。
PushBackInputStream回退流