zoukankan      html  css  js  c++  java
  • IO流 改变标准输入输出设备

    package com.yyq;
    import java.io.*;
    /*
     * 转换流--------指定码表
     * 需求: 想将一个文件的数据打印在控制台上
     * 源:文件
     * 目的:控制台
     * 流操作的基本规律:
     *     最痛苦的就是流的对象有很多,不知道该用哪一个
     *     
     *     三个明确来完成: (1)明确 源和目的
     *                         源: 输入流  (InputStream Reader) 
     *                       目的:输出流(OutputStream Writer)
     *                 (2)明确操作的数据是否是纯文本
     *                          是纯文本: 字符流
     *                      不是纯文本:字节流
     *                 (3)当体系明确后,再明确要使用那个具体的对象
                            设备进行区分:
     *                         源设备:内存,硬盘,键盘
     *                         内存,硬件,控制台
     *                 是否需要提高效率: 是,需要加入Reader体系中的缓冲区
     *   1.将一个文本文件中的数据存储到 另一个文件中,复制文件
     *       源:InputStream Reader 
     *        是文本文件,这是就可以选择Reader
     *        体系明确
     *        接下来要明确要使用该体系中的那个对象,明确设备: 硬盘上的一个文件
     *        Reader体系中可以操作文件的对象是FileReader              
     *     目的:OutputStream Writer
     *           目的是否是纯文本 writer
     *      设备: 硬盘,一个文件
     *        writer 体系中可以操作文件的对象FileWriter
     *      (循环读写,定义缓冲区)
     */
    /*
     * 2.将键盘录入的数据保存到一个文件中
     *   源: InputStrem Reader
     *   是不是纯文本:(键盘是纯文本 ? 是 Reader)
     *   设备:键盘(对应的对象是 System.in )
     *   不是选择Reader吗 ?System.in对应的是不是字节流吗?
     *   为了操作键盘的文本数据方便,转成字符流,按照字符串操作是最方便的
     *   所以既然明确了Reader ,那么就将system.in 转换成Reader
     *   用了Reader体系中的转换流 InputStreamReader
     *       需要提高效率吗? 需要的话使用BufferedReader
     *   目的: OutputStream Writer
     *   是否是纯文本? 是字符流writer
     *   设备:硬盘一个文件: 使用FileWriter
     *   需要提高效率吗? BufferedWriter
     *   ********************************
     *   
     *   扩展:想要把录入的数据按照指定的编码表(utf8),将数据存入到文件中
     *   转换流的由来就是可以指定编码表,(转换流存在的意义,就是能指定编码表)
     *   但是存储是,需要加入指定的编码表,而指定的编码表只有转换流可以指定
     *   该流对象需要接收一个字节输出流,而且还可以操作文件的字节输出流FileOutputStream
     * 
     *   转换流: 什么时候使用? 字符和字节之间的桥梁,通常涉及字符编码转换时使用到
     */
    public class Test {
        public static void main(String[] args) throws IOException {
            System.setOut(new PrintStream("haha.txt"));
            BufferedReader bufr = new BufferedReader(new InputStreamReader(new FileInputStream("1.txt"),"gbk"));
            System.out.println(bufr.readLine());
            BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));
            String line = null;
            while((line = bufr.readLine())!=null){
                bufw.write(line);
                bufw.newLine();
                bufw.flush();
            }
        }
    }
  • 相关阅读:
    COGS 859. 数列
    9.7noip模拟试题
    hash练习
    9.6noip模拟试题
    9.5noip模拟试题
    poj 2117 Electricity
    洛谷P1993 小 K 的农场(查分约束)
    9.2noip模拟试题
    洛谷 P1273 有线电视网(dp)
    面试题收集
  • 原文地址:https://www.cnblogs.com/yangyongqian/p/5153524.html
Copyright © 2011-2022 走看看