InputStreamReader/OutputStreamWriter用来实现将字节流转化成字符流。比如,如下场景

System.in是字节流对象,代表键盘的输入,如果想按行接受用户的输入时,就必须用到缓冲字符流BufferedReader特有的方法readLine(),但是发现在创建BufferedReader的构造方法的参数必须是一个Reader对象,这时候转换流InputStreamReader就用上了。

System.out也是字节流对象,代表输出到显示器,按行读取用户的输入后,并且要将读取的一行字符串直接显示到控制条,就需要用到字符流的writer(String str)方法,所以我们使用OutputStreamWriter将字节流转换为字符流。

1.通过转换流实现键盘输入屏幕输出

import java.io.*;
public class ConvertStream {public static void main(String[] args) {BufferedReader br = null;  //字节输入缓冲流BufferedWriter bw = null;  //字节输出缓冲流try {br = new BufferedReader(new InputStreamReader(System.in));bw = new BufferedWriter(new OutputStreamWriter(System.out));while(true) {bw.write("please input");bw.flush();   //这里不要忘记String input = br.readLine();bw.flush();   //这里不要忘记if("exit".equals(input)) {break;}bw.write(input);bw.newLine();  //另起一行输入bw.flush();   //这里不要忘记}}catch(Exception e) {e.printStackTrace();}finally {try {if(br!=null) {br.close();}if(bw!=null) {bw.close();}}catch(Exception e) {e.printStackTrace();}}}
}

2.通过字节流读取文本文件并添加行号

import java.io.*;
public class LineNumberDemo2 {public static void main(String[] args) {BufferedReader br = null;BufferedWriter bw = null;try {br = new BufferedReader(new InputStreamReader(new FileInputStream("d:/ee.txt")));bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("d:/eeee.txt")));String temp ="";int i = 1;while((temp = br.readLine())!=null) {bw.write(i+", "+temp);bw.newLine();i++;}bw.flush();}catch(Exception e) {e.printStackTrace();}finally {try {if(br!=null) {br.close();}if(bw!=null) {bw.close();}}catch(Exception e) {e.printStackTrace();}}}
}

IO流-转换流-Java相关推荐

  1. 【26天高效学习Java编程】Day22:Java中的属性集-缓冲流-转换流-序列化流详解

    本专栏将从基础开始,循序渐进,由浅入深讲解Java的基本使用,希望大家都能够从中有所收获,也请大家多多支持. 专栏地址:26天高效学习Java编程 相关软件地址:软件地址 所有代码地址:代码地址 如果 ...

  2. 第十五章 IO流(转换流 字符流 字符缓冲流 打印流)

    Java基础15 第十五章 IO流(转换流 字符流 字符缓冲流 打印流) 15.1 字符编码和字符集 15.1.1 字符编码 15.1.2 字符集 15.1.3 String类getBytes()方法 ...

  3. Java基础---认识IO流---字节流、字符流---缓冲流---转换流

    一.认识IO流 I/O就是用于设备之间进行数据交互的对象所属的类型 IO流的体系结构:根据分类,有四种流对象类型 字节流:可以直接操作字节信息的流对象 字节输入流:InputStream 字节输出流: ...

  4. java基础—IO流——转换流的操作

    转换流的使用 转换流:     InputStreamReader:字节到字符的桥梁,解码.     OutputStreamWriter:字符到字节的桥梁,编码 import java.io.Buf ...

  5. java基础 io流 字节流 字符流 节点流 包装流 转换流 缓冲流 对象流 打印流 Properties类

    目录 1.概念 2.常用的文件操作 2.1 创建文件 2.2 获取文件相关信息 2.3 目录的操作和文件删除 3. IO流原理及流的分类 3.1 流的分类 4.InputStream 字节输入流 4. ...

  6. Java入门 第十三节(二)IO流转换流

    文章目录 1. 什么时候使用转换流 2. 方法介绍 2.1 将控制台输入写入文件中 2.2 将文件中内容显示到控制台 3. 常见编码表 3.1 编码字节测试 4. 指定编码读取 4.1 转换流--读 ...

  7. java:IO流(缓冲流、对象流、控制台IO、转换流、java.io.File 类 )

    目录 一.IO 流的结构体系 二.缓冲流:BufferedInputStream & BufferedOutputStream 三.对象流:ObjectInputStream & Ob ...

  8. io包下 文件类 字节流 字符流 缓冲流 转换流 序列化流 打印流

    第一章 File类 1.1 概述 java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建.查找和删除等操作. 1.2 构造方法 public File(String pat ...

  9. java 缓冲流 转换流、序列化流、打印流

    1.缓冲流 1.1 概述 缓冲流也叫作高效流,是对基本的FileXXX流的增强,所以也是4个流,按照数据类型分为: 字节缓冲流:BufferedInputStream,BuffteredOutputS ...

最新文章

  1. Windows Azure ISV博客系列:ReedRex 的sociobridge
  2. 【周报6.10-6.16】NLP,RL,GAN,DL框架等重磅专栏齐上线,这个月的有三AI你值得拥有...
  3. android多媒体编程题库,android 仿猿题库答题UI
  4. 那些年我们一起追逐的多线程(Thread、ThreadPool、委托异步调用、Task/TaskFactory、Parallerl、async和await)
  5. linux命令行聊天,Linux 下使用talk 进行聊天
  6. 基于队列的二叉树层次遍历
  7. fpga电平约束有什么作用_FPGA开发全攻略——时序约束
  8. 6U VPX 超高速信号采集处理板(XC7K325T + 4 片DSP TMS320C6678)
  9. 第四届“传智杯”全国大学生IT技能大赛(练习赛)【完结】
  10. hprose for php,基于swoole的Hprose for PHP 开发后端API服务 实践
  11. 报名软件批次分类code不能为空_为什么金蝶入库单保存时提示批号不能为空
  12. oppo手机投屏到电脑上
  13. pptpd搭建过程中 启动成功但不显示ppp0端口
  14. python读取excel的公司名称信息,并爬虫获取公司的经营范围信息,回填到excel中
  15. 面试了10几家软件公司测试岗位,做的面试题大盘点,重点大合集
  16. html5学习之音乐播放器的结构整理
  17. 奥比中光 Astra pro 深度相机在ROS Melodic的调试
  18. 【BI学习笔记】在Linux上安装Wyn Enterprise商业智能报表服务器
  19. 【车载】ABS/BAS/BA防抱死制动系统
  20. ITOP4412 OV5640摄像头模块

热门文章

  1. SQL指定的服务器名无效,SQL Server (MSSQLSERVER) 服务启动不了,系统日志显示由于下列服务特定错误而终止: 找不到映像文件中指定的资源名。...
  2. 一百以内偶数和和奇数和
  3. 一、需求测试-需求规格说明书规范
  4. 集合contains无效
  5. 二进制、八进制、十六进制(一)
  6. Webdings字体、Wingdings字体对照表、用CSS3绘制的各种小图标
  7. 工业相机、镜头、光源选择
  8. 我的入门第二课——自由测试
  9. SQL注入绕过--emoji表情包绕过 waf
  10. 【XP系统下载】联想品牌专用GHOSTXPSP3 v2013.03