• 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();//跨平台换行,不用'
    '
                        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();
                        }
                    }
                    
                }
            
    }
     
  • 相关阅读:
    标题党的进步:道字大旗不再扯,美为号召又开张
    dwr自动生成的js文件到底在哪里?
    JavaScript全局优化带来的负面效果……
    内训资料公开:设计师的实战过程(1)
    元语言基础技术之:在JS中如何自由地创建函数
    QoBean的元语言系统(一)
    Oracle面向服务的架构
    对JavaScript的eval()中使用函数的进一步讨论~
    KEGG and Gene Ontology Mapping in Bioinformatic Method
    mysql user administration
  • 原文地址:https://www.cnblogs.com/200911/p/3955476.html
Copyright © 2020-2023  润新知