首页 > 代码库 > java基础知识回顾之javaIO类---InputStreamReader和OutputStreamWriter转化流

java基础知识回顾之javaIO类---InputStreamReader和OutputStreamWriter转化流

InputStreamReader:是字节流通向字符流的桥梁;

OutputStreamWriter 是字符流通向字节流的桥梁;

 

package com.lp.ecjtu;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileInputStream;import java.io.FileNotFoundException;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.Writer;public class SystemReadInKeyTranfer {    /**     * 1.源:键盘     *  目的:控制台     * 2.源:键盘录入:把键盘录入的数据存储到一个文件中     * 目的:文件     * 3.源:文件:将文件中的数据打印在控制台上     * 目的:控制台     * 流操作的基本流程:     *   通过两个明确来完成     *      1 明确源和目的     *        源:输入流,InputStream Reader     *        目的:输出流 :outputStream Writer     *      2.操作的是否为纯文本     *         是:字符流     *         不是:字节流     *      3.当体系明确后,在明确使用哪个具体的对象。     *        通过来设备来区分:     *            源设备:内存,硬盘,键盘     *          目的:内存,硬盘,控制台     *  1.将一个文本文件中的数据存储到另一个文件。复制文件。     *     源:因为是源,所以使用读取流。InputStream Reader     *     是文本文件:这是可以选择Reader     *     明确设备:硬盘上的一个文件     *     Reader体系中可以操作文件的FileReader     *     是否提高效率,是,加入Reader体系中的BufferedReader     *     FileReader fr = new FileReader("a.txt");     *     BufferedReader buffr = new BufferedReader(fr);     *          *     目的:outputStream Writer     *     是否为纯文本,是!用字符流 Reader.     *     设备:硬盘上的文件.     *     Writer体系中可以操作文件的FileWriter     *             是否提高效率,是,加入Writer体系中的BufferedWriter     *     FileWriter fr = new FileWriter("a.txt");     *     BufferedWriter buffr = new BufferedWriter(fr);     *          *     2.将一个图片文件中的数据存储到另一个文件。复制文件。     */    public static void main(String[] args){                BufferedReader bufferr = null;        BufferedWriter bufferw = null;        try {            //将System.in->InputStream->Reader对象            //将Reader对象包装成BufferedReader对象  //键盘录入 /*bufferr =     new BufferedReader(new InputStreamReader(System.in));//把键盘录入的数据存储到out.txt文件当中 bufferw=     new BufferedWriter(new OutputStreamWriter(new FileOutputStream("out.txt")));*/            //将文件中的数据与bufferedReader相关联,InputStreamReader字节向字符转化的桥梁。                bufferr =                     new BufferedReader(new InputStreamReader(new FileInputStream("FileReaderDemo.java")));            //将文件的数据打印到控制台,OutputStreamWriter字符向字节转化的桥梁                bufferw = new BufferedWriter(new OutputStreamWriter(System.out));            String line = null;            //采用循环的方式逐个读取                while((line=bufferr.readLine())!=null){                    //如果读取的字符串为“over”的时候,则程序退出                    if(line.equals("over")){                        System.exit(-1);//或者用break                    }                    //打印读取的内容                    //System.out.println(line.toUpperCase());                    //使用字符输出流进行输出                    bufferw.write(line.toUpperCase());                    bufferw.newLine();//跨平台换行,不用‘\r\n‘                    bufferw.flush();                }            } catch (IOException e) {            // TODO Auto-generated catch block                e.printStackTrace();            }finally{                try {                        if(bufferr != null){                            bufferr.close();                        }                        if(bufferw != null){                            bufferw.close();                        }                    } catch (IOException e) {                        // TODO Auto-generated catch block                        e.printStackTrace();                    }                }                            }        }

 

java基础知识回顾之javaIO类---InputStreamReader和OutputStreamWriter转化流