博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IO流 改变标准输入输出设备
阅读量:7212 次
发布时间:2019-06-29

本文共 2180 字,大约阅读时间需要 7 分钟。

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();        }    }}

 

转载于:https://www.cnblogs.com/yangyongqian/p/5153524.html

你可能感兴趣的文章
ansible filter_plugins插件实现jinja2自定义filter过滤器
查看>>
你可以搞定任何人
查看>>
Oracle中关于并集/交集/差集的运算
查看>>
Matrix学习——基础知识
查看>>
血条或进度条
查看>>
linux中内存挂载到目录下
查看>>
中介者模式
查看>>
react-native icon使用方式
查看>>
ms12-20 远程桌面(RDP)3389漏洞
查看>>
shell中的 trap
查看>>
轻松实现web高可用!(keepalived实战讲解)
查看>>
不输入密码执行sudo命令方法介绍
查看>>
wyse WES系统操作
查看>>
角色和权限Hibernate实体映射配置
查看>>
项目管理的关键点
查看>>
我的友情链接
查看>>
临近过年的一点感想
查看>>
spring问题-使用tomcat容器,通过url映射寻找view的时候,会报错
查看>>
mongodb,php,python,驱动安装
查看>>
CDH客户端安装
查看>>