java IO流(转换流)

mac2025-11-27  13

1.将文本文件显示在控制台上

public static void test1() throws IOException { //将文本文件显示在控制台上 //创建转换流,读入文件 BufferedReader in=new BufferedReader(new InputStreamReader(new FileInputStream("in.txt"))); //创建一个转换流,并使用BufferedReader提高效率 BufferedWriter out=new BufferedWriter(new OutputStreamWriter(System.out)); String string=null; while((string=in.readLine())!=null) { //写入 out.write(string); //换行 out.newLine(); //刷新 out.flush(); } }

2.将键盘输入的内容写到文件里

public static void test2() throws IOException { //将键盘输入的内容写入到一个文件里 BufferedReader in=new BufferedReader(new InputStreamReader(System.in)); BufferedWriter out=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("out.txt"))); String string=null; while((string=in.readLine())!=null) { if(string.equals("over")) break; out.write(string); out.newLine(); out.flush(); } }

3.将从文件中读到的数据写到文件里

public static void test3() throws IOException { BufferedReader in=new BufferedReader(new InputStreamReader(new FileInputStream("in.txt"))); BufferedWriter out=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("out.txt"))); String string=null; while((string=in.readLine())!=null) { out.write(string); out.newLine(); out.flush(); } }

4.从键盘读入数据,从键盘输出数据

//实现从键盘读入,从键盘输出 public static void test4() throws IOException { InputStream in=System.in; ///字节流转变为字符流 InputStreamReader change=new InputStreamReader(in); //装饰,提高效率 BufferedReader buff=new BufferedReader(change); String string=null; //字节流 OutputStream out=System.out; ///FileWrite的父类 OutputStreamWriter changew=new OutputStreamWriter(out); BufferedWriter buffout=new BufferedWriter(changew); while((string=buff.readLine())!=null) { out.write(string.getBytes()); if(string.equals("over")) break; // System.out.println(string.toUpperCase()); buffout.write(string+'\r'+'\n'); buffout.flush(); } }

5.指定编码格式的写入操作

//指定编码表的写入操作 public static void test5() throws IOException { OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("gbk1.txt"),"GBK"); FileWriter fw=new FileWriter("gbk2.txt"); //如上两种操作的等效, //FileWriter实际上是已经指定好编码格式的转换流, //入过需要指定具体的编码格式,FileWriter就不行了 osw.write("你好"); fw.write("你好"); osw.flush(); fw.flush(); } //指定编码格式读入,要使用相同的编码格式解码 public static void test6() throws IOException { //使用utf-8编码格式读入 OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("utf-8.txt"),"utf-8"); osw.write("你好"); osw.flush(); //如果是用FileReader读入,因为FileReader是默认的系统的编码格式GBK,所以在解码是会乱码 FileReader file1=new FileReader("utf-8.txt"); char []ss=new char[1024]; int len=file1.read(ss); String string=new String(ss,0,len); System.out.println(string); //使用转换流指定utf-81的编码格式解码,就不会出现乱码的情况 InputStreamReader ipr=new InputStreamReader(new FileInputStream("utf-8.txt"),"utf-8"); len=ipr.read(ss); string=new String(ss,0,len); System.out.println(string); }

 

最新回复(0)