转换流--InputStreamReader ,OutputStreamWriter
BufferedReader 字符流,只能装饰字符流,不能装饰字节流。有个重要且好用的方法是readLine()整行读取字符。
但是InputStream是字节流,没有resdLine方法,那么字节流InputStream如何使用readLine方法呢???
如果能把字节流转换成字符流就可以使用BufferedReader装饰流。也就可以使用readLine方法。
把字节流转换成字符流,或者把字符流转为字节流 称为转换流:
InputStreamReader(前缀是功能,后缀是体系):字节流通向字符流的桥梁。他可以使用指定的charset读取字节流并将其解码为字符
OutputStreamWriter:字符流通向字节流的桥梁,他可以使用指定的charset将要写入流的字符编码成字节
InputStream in=system.in;读取键盘输入的字节流,如果是读取一个中文,需要读两次才可以
InputStreamReader isr=new InputStreamReader(in);将字节流转换为字符流。如果是读一个中文,一次就可以读完
BufferedReader bufr=new BufferedReader(isr);
string line=null;
while((line=bufr.readLine())!=-1)
{
if("over".equals(line))当读取到over就结束,否则转大写输出。
break;
system.out.println(line.toUpperCase())
}
OutputStreamWriter:
//读取键盘输入,转大写后输出到控制台
InputStream in=system.in;读取键盘输入的字节流,
InputStreamReader isr=new InputStreamReader(in);将字节流转换为字符流。
BufferedReader bufr=new BufferedReader(isr);
上面三句可以合为一句:
BufferedReader bufr=new BufferedReader(new InputStreamReader(system.in));
//输出到控制台
OutputStream out=system.out;
OutputStreamWriter osw=new OutputStreamWriter(out);
BufferedWriter bfw=new BufferedWriter(osw);
上面三句可以合为一句:
BufferedWriter bfw=new BufferedWriter(new OutputStreamWriter(system.ou));
string line=null;
while((line=bufr.readLine())!=-1)
{
if("over".equals(line))当读取到over就结束,否则转大写输出。
break;
bfw.write(line.toUpperCase());
bfw.newLine();
bfw.flush();
}
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
/*
* 1,需求:将键盘录入的数据写入到一个文件中。
*
* 2,需求:将一个文本文件内容显示在控制台上。
*
* 3,需求:将一个文件文件中的内容复制到的另一个文件中。
*/
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("b.txt")));
String line = null;
while((line=bufr.readLine())!=null){
if("over".equals(line))
break;
bufw.write(line.toUpperCase());
bufw.newLine();
bufw.flush();
}
}
转换流--InputStreamReader ,OutputStreamWriter的更多相关文章
- 转换流InputStreamReader & OutputStreamWriter
转换流InputStreamReader & OutputStreamWriter 比如当使用FileReader读取文件时,可以读取IDE默认的UTF-8编码的文件,但是当有一个文件是GBK ...
- [19/04/02-星期二] IO技术_字符流分类总结(含字符转换流InputStreamReader/ OutputStreamWriter,实现字节转字符)
一.概念 ------->1.BufferedReader/BufferedWriter [参考19.03.31文章] *Reader/Writer-------->2.InputStre ...
- Java IO 流 -- 转换流: InputStreamReader OutputStreamWriter
java 中 转换流是以字符流的形式操作字节流,需要注意一下两点: 1.操作内容必须是纯文本 2.指定字符集避免乱码 操作控制台输入输出: try (BufferedReader br = new B ...
- (25)IO流之转换流InputStreamReader和OutputStreamWriter
InputStreamReader:字节到字符的桥梁. OutputStreamWriter:字符到字节的桥梁. 它们有转换作用,而本身又是字符流.所以在构造的时候,需要传入字节流对象进来. 构造函数 ...
- Java API —— 编码 & IO流( InputStreamReader & OutputStreamWriter & FileReader & FileWriter & BufferedReader & BufferedWriter )
1.编码 1)编码表概述 由字符及其对应的数值组成的一张表 2)常见编码表 · ASCII/Unicode 字符集:ASCII是美国标准信息交换码,用一 ...
- JAVA之旅(二十七)——字节流的缓冲区,拷贝mp3,自定义字节流缓冲区,读取键盘录入,转换流InputStreamReader,写入转换流,流操作的规律
JAVA之旅(二十七)--字节流的缓冲区,拷贝mp3,自定义字节流缓冲区,读取键盘录入,转换流InputStreamReader,写入转换流,流操作的规律 我们继续来聊聊I/O 一.字节流的缓冲区 这 ...
- Java基础---Java---IO流-----读取键盘录入、InputStreamReader、转换流、OutputStreamWriter、InputStreamReader
字符流: FileReader FileWriter BufferedReader BufferedWriter 字节流: FileInputStream FileOutputStream Buffe ...
- Java IO流学习总结五:转换流-InputStreamReader、OutputStreamWriter
类的继承关系 Reader |__ BufferedReader.StringReader.InputStreamReader |__ FileReader Writer |__ BufferedWr ...
- io流之转换流InputStreamReader、OutputStreamWriter
例子程序: package io; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.File ...
随机推荐
- Html 嵌入 swf
1. object + embed 传统的方法 优点:浏览器兼容性好,是 Macromedia 一直以来的官方方法缺点:a.embed 标签是不符合 W3C 的规范的,无法通过验证.当然, ...
- 关于oracle数据库(8)查询2
筛选数据,直接加where条件,并且and,或者or 使用rownum获取前N条数据 select * from 表名 where rownum <= 数字; 如:获取前5条数据 select ...
- JavaScript(10)——Ajax以及跨域处理
Ajax以及跨域处理 哈哈哈,终于写到最后一章了.不过也还没有结束,说,不要为了学习而学习,恩.我是为了好好学习而学习呀.哈哈哈.正在尝试爱上代码,虽然有一丢丢的难,不过,我相信我会的! [Ajax] ...
- Java自学之路---DotCom
引言 我从接触编程以来,一直是一个C/C++程序猿,因为我喜欢编程时,那种接地气的感觉,认为只有自己管理内存的使用,心理才踏实.但随着工作中不断增加的见闻,不断的从博客和源码中获得新的见解,我发现这个 ...
- Struts2--课程笔记3
获取ServletAPI: 第一种方式: //在request域中放入属性req,暂且认为getContext()获取的是request域空间,但实际不是 ActionContext.g ...
- asp脱离源代码管理
当项目中出现“未能找到与此解决方案关联的源代码管理提供程序.项目将视为不受源代码管理” 解决方法:1.vs2013打开项目, 2.提示“您正在打开的解决方案已绑定到以下Team Foundation ...
- play框架概述
今天是来百度实习的第四天,在项目过程中mentor说会用到play框架,当时就一个晕啊.Java还有一个叫play框架,作为一个从大三开始用java的重度javaer,居然不知道这个框架的存在,内心一 ...
- POJ 3416 Crossing
树状数组+离线操作 #include<stdio.h> #include<string.h> #include<math.h> #include<algori ...
- java操作cookies
建立一个无生命周期的cookie,即随着浏览器的关闭即消失的cookie,代码如下 HttpServletRequest request HttpServletResponse response Co ...
- JDK,Tomcat,myeclipse相关资料
配置JDK(安装oracle必须先配好jdk): 1.右击计算机-属性-高级系统设置-高级-环境变量,弹出“环境变量”对话框.在Administrator的用户变量里添加: JAVA_HOME指明JD ...