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();//跨平台换行,不用'\r\n'
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();
}
} } }
java基础知识回顾之javaIO类---InputStreamReader和OutputStreamWriter转化流的更多相关文章
- java基础知识回顾之javaIO类---FileWriter和FileReader
FileWriter类的构造方法定义如下: 1.public FileWriter(File file)throws IOException 字符流的操作比字节流操作好在一点,就是可以直接输出字符串了 ...
- java基础知识回顾之javaIO类总结
java IO体系图 IO流的操作规律总结: 1,明确体系: 数据源:InputStream ,Reader 数据汇:OutputStream,Writer 2,明确数据:因为数据分两种:字节,字符. ...
- java基础知识回顾之javaIO类--RandomAccessFile类
java.io 类 RandomAccessFile java.lang.Object java.io.RandomAccessFile1.该类不是IO流中的子类.2.该类既能读又能写.3.该对象内部 ...
- java基础知识回顾之javaIO类--java序列化和反序列化
/** * * 一:理解序列化反序列化及其应用 * 序列化:把堆内存的对象转化成字节流的过程. * 反序列化:把字节流序列恢复重构成对象的过程. * 对象的序列化的用途:1.把对象的字节序列持久化, ...
- java基础知识回顾之javaIO类--File类应用:过滤器接口FilenameFilter和FileFilter
FilenameFilter和FileFilter都是用来过滤文件,例如过滤,以.jpg或者.java结尾的文件,通过看他们的源码:通过使用File类中String[] list(FilenameFi ...
- java基础知识回顾之javaIO类--File类
File类是对文件系统中文件以及目录(文件夹)进行封装的对象,可以通过面向对象的思想来操作文件和目录(文件夹).File类保存文件或目录的各种元素的信息,包括文件名,文件长度,最后修改日期,是否可读, ...
- java基础知识回顾之javaIO类---BufferedInputStream和BufferedOutputStream
MP3的复制过程: package com.lp.ecjtu; import java.io.BufferedInputStream; import java.io.BufferedOutputStr ...
- java基础知识回顾之javaIO类---FileInputStream和FileOutputStream字节流复制图片
package com.lp.ecjtu; import java.io.FileInputStream; import java.io.FileNotFoundException; import j ...
- java基础知识回顾之javaIO类---BufferedReader和BufferedWriter
使用了装饰设计模式:此类的设计是为了提高流操作数据的效率.思想就是定义容器将数据进行临时存储,对于缓冲区对象,其实就是将这个容器进行了分装,并提供了更高效的操作方法. BufferReader: pa ...
随机推荐
- Helloworld模块之内核makefile详解
Hello World 模块以及对应的内核makefile详解 hello.c: #include <linux/module.h> //所有模块都需要的头文件 #include < ...
- SaaS应用“正益工作”发布,为大中型企业轻松构建移动门户
6月24日,以“平台之上,应用无限”为主题的2016 AppCan移动开发者大会,在北京国际会议中心隆重举行,逾1500名移动开发者一起见证了此次大会盛况. 会上,在专家领导.技术大咖.移动开发者的共 ...
- Karaf 依赖equinox and felix,karaf 本Apache的很多项目作为基础框架
6月17日是Apache Karaf作为Apache顶级项目.Karaf是个运行时包,包含了一个OSGi框架(Equinox或Felix).一个命令shell(Felix Gogo)及默认情况下内置的 ...
- 开启Objective-C --- OC基础知识
一.Objective-C简述 Objective-C通常写作ObjC和较少用的Objective C或Obj-C,是扩充C的面向对象编程语言.Objective-C主要用于:编写iOS操作 ...
- 将商户后台_门店管理后台_平台后台管理v1.0 Axure RP项目上传到svn服务器步骤
- 47.MIF和COE文件格式
.mif和.coe这两个文件分别是Quartus和ISE的RAM和ROM的初始化文件,因此了解他们的格式,是很必要的 MIF文件的格式如下: WIDTH=14; --数据宽度为14位 DEPT ...
- 关于VS2010error RC2170 : bitmap file res\tmp1.bmp is not in 3.00 format
我们有时候向VS中的程序插入图片,会出现如下错误: 这是VS的一个bug,对于不能识别的资源,添加的时候,VS会弹出一个对话框让你填类型,这个类型其实是字符串表示,而不是像内置类型,例如整数. 解 ...
- linux查看文件权限
ls -l abc (abc是文件名) 那么就会出现相类似的信息,主要都是这些:drwxr-xr-x 一共有10位数 其中: 最前面那个 d 代表的是类型 目录文件 中间那三个 rw- 代表的是所有者 ...
- 阿里云:linux 一键安装web环境
参考地址:http://www.cnblogs.com/ada-zheng/p/3724957.html
- 【反射】——Autofac 类型注册
Autofac是.net界一款轻量化的IOC组件,使用Autofac可以帮助完成代码中很多依赖注入工作.在以前文章中,介绍过Autofac的配置过程(http://www.cnblogs.com/Jn ...