Java中的流——转换流
字节流转字符流
java.io
Class OutputStreamWriter
java.io
Class InputStreamReader
TestTransForm1.java
import java.io.*; /* OutputStreamWriter,将字节转为字符 */ public class TestTransForm1 { public static void main(String[] args) { try { //OutputStreamWriter,将字节转为字符; FileOutputStream 文件输出字节流 OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("F:\\java\\io\\char.txt")); osw.write("mircosoftibmsunapplehp"); //osw.getEncoding()拿到文件的字符编码 System.out.println(osw.getEncoding());//GBK,windows中文电脑默认为GBK编码 osw.close(); /* new FileOutputStream("F:\\java\\io\\char.txt", true),"ISO8859_1"); true,在源文件的基础上添加 "ISO8859_1",指定字符编码 */ osw = new OutputStreamWriter(new FileOutputStream("F:\\java\\io\\char.txt", true),"ISO8859_1"); // latin-1 osw.write("mircosoftibmsunapplehp"); System.out.println(osw.getEncoding());//ISO8859_1,设置的编码 osw.close(); } catch (IOException e) { e.printStackTrace(); } } }
f:\java\io>javac TestTransForm1.java f:\java\io>java TestTransForm1 GBK ISO8859_1 f:\java\io>
TestTransForm2.java
import java.io.*; /* InputStreamReader,字节流转字符流 */ public class TestTransForm2 { public static void main(String args[]) { //System.in系统输入, InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); String s = null; try { //读一行 s = br.readLine(); while(s!=null){ if(s.equalsIgnoreCase("exit")) break; //toUpperCase()转换为大写 System.out.println(s.toUpperCase()); //读下一行 s = br.readLine(); } br.close(); } catch (IOException e) { e.printStackTrace(); } } } //阻塞
f:\java\io>javac TestTransForm2.java f:\java\io>java TestTransForm2 abcdedfgi ABCDEDFGI 你好 你好 exit f:\java\io>