IO流(四)__流的操作规律总结
流的操作规律:
1.明确源和目的
源:InputStream Reader
目的:OutputStream Writer
2.明确数据是否是纯文本数据
源:是纯文本:Reader
否:InputStream
目的:是纯文本 Writer
否:OutputStream
到这里就可以明确需求中具体要使用哪个体系
3.名确具体的设备
源设备:
硬盘:File
键盘:System.in
内存:数组 缓存
网络:Socket流
目的设备:
硬盘:File
控制台:System.out
内存:数组
网络:Socket流
4.是否需要其他额外功能
(1)是否需要高效(缓冲区):是:及加上buffer
(2)转换
需求:1.复制一个文本文件。
1.明确源和目的。
源:InputStream Reader
目的:OUtputStream Writer
2.是否是纯文本
是:Reader
目的:Writer
3.明确具体的设备
源:
硬盘: File
目的:
硬盘:File
FileReader fr=new FileReader("a.txt")
FileWriter fw=new FiileWriter("b.txt")
4.需要额外功能
需要高效
BufferedReader bufr =new BufferedReader(new FileReader("a.txt"))
BufferedWriter bufw =new BufferedReader(new FileReader("b.txt"))
======================================================
需求2. 读取键盘录入信息,并写入到一个文件中
1.明确源和目的。
源:InputStream Reader
目的:OUtputStream Writer
2.是否是纯文本
是:Reader
目的:Writer
3.明确识别
源:
键盘:System.in
目的:
硬盘:File
InputStream in =System.in;
FileWriter fw =new FileWriter("b.txt")
这样做可以。将读取的字节数据转成字符串,再由字符流操作
4.需要额外的功能吗?
需要。转换。将字节流转成字符流因为明确的源是Reader,这样操作文本数据便捷
所以要将已有字节流转成字符流。使用字节转字符的对象。InputStreamReader
InputStreamReader isr=new InputStreamReader(System.in)
FileWriter fw=new FileWriter("b.txt")
还需要功能吗?
需要:想高效
BufferedReader bufr=new BufferedReader( new InputStreamReader(System.in))
BufferedWriter bufw=new BufferedWriter( new FileWriter("b.txt"))
=========================================
需求3.经一个文本文件数据显示在控制台上
1.明确源和目的。
源:InputStream Reader
目的:OUtputStream Writer
2.是否是纯文本
是:Reader
目的:Writer
3.明确具体设备
源:
硬盘:File
目的:
控制台:System.out
FileReader fr =new FileReader("a.txt")
OutputStream out=System.out
4.需要额外功能吗?
需要转换。
FileReader fr =new FileReader("a.txt")
OutputStreamWriter osw =new OutputStreamWriter(System.out)
=================================================
4.读取键盘录入数据,显示在控制台上
1.明确源和目的。
源:InputStream Reader
目的:OUtputStream Writer
2.是否是纯文本
是:Reader
目的:Writer
3.明确设备
源:
键盘:System.in
目的:
控制台: System.out
InputStream in=System.in;
OutputStream out =System.out;
4.明确额外功能
需要转换,因为都是字节流,但是操作的确实文本数据。
所以使用字符流操作起来干呢更加便捷。
InputStreamReader isr =new InputStreamReader(System.in);
OutputStreamReader osw =new OutStreamWriter(System.out)
======================================
需求5:将一个中文字符串数据按照指定的编码表写入到一个文本文件中
注意:既然需求中已经明确了指定的编码表动作
那就不可以使用FileWriter,因为FileWriter内部是使用默认的本地码
OutputStreamWriter接收一个字节输出流对象,既然操作文件,那么使用FileOutputStream
什么时候使用转换流?
1.源或者目的对应的设备是字节流。但是操作的确实文本数据,可以使用转换作为桥梁提高对文本操作的便捷
2.一旦操作文本设计具体的指定编码表时,必须使用转换流。
IO流(四)__流的操作规律总结的更多相关文章
- Java基础---IO(一)---IO流概述、字符流、字节流、流操作规律
第一讲 IO概述 概述 1.IO流:即InputOutput的缩写. 2.特点: 1)IO流用来处理设备间的数据传输. 2)Java对数据的操作是通过流的方式. 3)Java用于操作流的对象都 ...
- IO流之流的操作规律
流的操作规律 IO流中对象很多,解决问题(处理设备上的数据时)到底该用哪个对象呢? 把IO流进行了规律的总结(四个明确): l 明确一:要操作的数据是数据源还是数据目的. 源:InputStream ...
- Java---IO加强(3)-IO流的操作规律
一般写关于操作文件的读取的几个通用步骤!!! 1.明确源和目的. 源:InputStream Reader 一定是被读取的. 目的:OutputStream Writer 一定是被写入的. 2.处理的 ...
- IO流的操作规律
输入流和输出流相对于内存设备而言. 将外设中的数据读取到内存中:输入将内存的数写入到外设中:输出. 字符流的由来:其实就是:字节流读取文字字节数据后,不直接操作而是先查指定的编码表.获取对应的文字.在 ...
- Java转换流、缓冲流、流操作规律整理
转换流 1.1 OutputStreamWriter类 OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的字符编码表,将要写入流中的字符编码成字 ...
- Java第三阶段学习(五、流的操作规律、Properties流、序列化流与反序列化流、打印流、commons-IO jar包)
一.流的操作规律 四个明确: 明确一:明确要操作的数据是数据源还是数据目的地 源:InputStream Reader 目的地:OutputStream Writer 先根据需求明确是要读还是写 ...
- IO流(五)__文件的递归、Properties、打印流PrintStream与PrintWriter、序列流SequenceInputStream
一.文件的遍历 1.需求:对指定目录进行所有的内容的列出(包含子目录的内容)-文件的深度遍历 思想:递归的思想,在递归的时候要记住递归的层次. public class FileTest { publ ...
- -1-4 java io java流 常用流 分类 File类 文件 字节流 字符流 缓冲流 内存操作流 合并序列流
File类 •文件和目录路径名的抽象表示形式 构造方法 •public File(String pathname) •public File(String parent,Stringchild) ...
- Java精选笔记_IO流(转换流、常用流、流操作规律、字符编码)
IO流 用来处理设备之间的数据传输,java对数据的操作是通过流的方式,java用于操作流的对象都在IO包中 按操作数据分为:字节流和字符流:按流向分为:输入流和输出流. 程序从输入流中读取数据,向输 ...
随机推荐
- Java Synchronized Blocks
From http://tutorials.jenkov.com/java-concurrency/synchronized.html By Jakob Jenkov A Java synchro ...
- ASPNET_WEBAPI快速学习02
这部分内容的学习,已经放了大半年时间了,果断补充上,尽早将过去遗留的老技术坑都补上.首先将介绍服务幂等性的概念和相关解决方案,这部分也将是本文的理解难点,由于WebAPI是一种Restful风格服务的 ...
- Wait Type:IO_COMPLETION
在等待 CXPACKET 完成的时间内,我查看 sys.dm_exec_requests ,发现Session的 Logical Read/Write, Physical Read 都没有变化.Wai ...
- SSIS的CheckPoint用法
在SSIS的Package Property中有CheckPoints的属性目录,CheckPoint是SSIS的Failover Feature.通过简单的配置CheckPoint,能够在Packa ...
- Spring之LoadTimeWeaver——一个需求引发的思考---转
原文地址:http://www.myexception.cn/software-architecture-design/602651.html Spring之LoadTimeWeaver——一个需求引 ...
- iOS_UIImage_Gif的分解
/** Gif的步骤 1. 拿到Gifd的数据 2. 将Gif分解为一帧帧 3. 将单帧数据转为UIImage 4. 单帧图片保存 */ github地址: https://github.com/ma ...
- java中使用junit测试
最初写代码只要功能走通就不管了,然后如果出了什么问题再去修改,这是因为没做测试的工作.测试其实很简单. 1.准备 当前使用idea编写代码,用maven构建工程,使用maven的test功能来进行批量 ...
- js基础-表单验证和提交
基础知识: 原始提交如下: <form action="/login" method="post" id="form1"> &l ...
- 基于HTML5的3D网络拓扑树呈现
在HT for Web中2D和3D应用都支持树状结构数据的展示,展现效果各异,2D上的树状结构在展现层级关系明显,但是如果数据量大的话,看起来就没那么直观,找到指定的节点比较困难,而3D上的树状结构在 ...
- log4net 既要按日期分割日志文件,又要按文件大小分割。
<appender name="DebugAppender" type="log4net.Appender.RollingFileAppender"> ...