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转化流)