java提高篇(一)拓展篇 java知识汇总---IO流的使用规律总结(含代码示例)浅显易懂
2014-08-04 21:36
691 查看
IO流的使用规律总结。
解决的问题,就是在开发过程中具体要使用哪个流对象的问题。
1,明确 数据源,数据汇(数据的目的)
其实就是在明确要使用的IO体系,InputStream OutputStream Reader Writer
需求中操作的是源:意味着是 读。
InputStream Reader
需求中操作的是 目的: 意味着是 写
OutputStream Writer
2,明确 操作的数据是否是存文本数据?
是 使用字符流
否 字节流
是并且是源。Reader
是并且是目的 。Writer
通过前两个明确,明确了具体要使用的体系。
接下来应该明确具体的体系中要使用哪个对象。
3,明确 要操作的具体设备。每个设备都有对应的流对象。
源设备:
硬盘,能操作File的流对象都是。File开头。、
键盘,System.in。
内存,数组。
网络,socket流。
目的设备:
硬盘,能操作File的流对象都是。File开头。、
显示器,System.out。
内存,数组。
网络,socket流。
到第三步明确就可以找到具体的流对象了。
4,要明确是否需要额外功能?
需要高效吗? 用缓冲区,Buffered开头的。
需要编码转换吗? 转换流。
------------------------------------------------------
下面通过具体的需求,来利用上面的规律来确定流对象。
需求1:通过键盘录入数据,将数据保存到一个文件中。
明确一:用源码?有, 有目的吗? 有。
源:InputStream Reader
目的:OutputStream Writer
明确二:是存文本数据吗? 是
源:Reader
目的:Writer
明确三:具体设备。
源设备:键盘, System.in
目的设备:硬盘 操作File
通过上面三步明确大致可以确认
InputStream is=System.in;//源对象
FileWriter fw=new FileWriter("a.txt");//目的对象。
//将读取的字节存储到数组中 read(byte[])
//将字节数组转换成字符串。
//通过fw.write(String)写入到文件中。
//但是这样做比较麻烦,因为要明确的源是Reader ,需要将字节流转成字符流,这样操作文字就便捷了。
明确四:需要功能吗?
需要。 转换 字节-->字符。InputStreamReader
InputStreamReader isr=new InputStreamReader(System.in);
FileWriter fw=new FileWriter("a.txt");
//一次读取一个字符,将读到的字符写入。当然也可以定义字符数组缓冲区。
需要其他功能吗?
需要,高效。 Buffered
所以最终的流对象可以确认了。
BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
BUfferedWriter bufw=new BufferedWriter(new FileWriter("a.txt"));
//line=readLine();
//bufw.write(String);bufw.flush();
下面把需求一的代码写出来以供大家学习。
下面是操作程序的结果。
我也是刚学不久,这些全是我自己总结的,有不足之处还望体谅。日后我会用自己有限的能力为大家做出更多的总结。
爱分享,爱生活。
解决的问题,就是在开发过程中具体要使用哪个流对象的问题。
1,明确 数据源,数据汇(数据的目的)
其实就是在明确要使用的IO体系,InputStream OutputStream Reader Writer
需求中操作的是源:意味着是 读。
InputStream Reader
需求中操作的是 目的: 意味着是 写
OutputStream Writer
2,明确 操作的数据是否是存文本数据?
是 使用字符流
否 字节流
是并且是源。Reader
是并且是目的 。Writer
通过前两个明确,明确了具体要使用的体系。
接下来应该明确具体的体系中要使用哪个对象。
3,明确 要操作的具体设备。每个设备都有对应的流对象。
源设备:
硬盘,能操作File的流对象都是。File开头。、
键盘,System.in。
内存,数组。
网络,socket流。
目的设备:
硬盘,能操作File的流对象都是。File开头。、
显示器,System.out。
内存,数组。
网络,socket流。
到第三步明确就可以找到具体的流对象了。
4,要明确是否需要额外功能?
需要高效吗? 用缓冲区,Buffered开头的。
需要编码转换吗? 转换流。
------------------------------------------------------
下面通过具体的需求,来利用上面的规律来确定流对象。
需求1:通过键盘录入数据,将数据保存到一个文件中。
明确一:用源码?有, 有目的吗? 有。
源:InputStream Reader
目的:OutputStream Writer
明确二:是存文本数据吗? 是
源:Reader
目的:Writer
明确三:具体设备。
源设备:键盘, System.in
目的设备:硬盘 操作File
通过上面三步明确大致可以确认
InputStream is=System.in;//源对象
FileWriter fw=new FileWriter("a.txt");//目的对象。
//将读取的字节存储到数组中 read(byte[])
//将字节数组转换成字符串。
//通过fw.write(String)写入到文件中。
//但是这样做比较麻烦,因为要明确的源是Reader ,需要将字节流转成字符流,这样操作文字就便捷了。
明确四:需要功能吗?
需要。 转换 字节-->字符。InputStreamReader
InputStreamReader isr=new InputStreamReader(System.in);
FileWriter fw=new FileWriter("a.txt");
//一次读取一个字符,将读到的字符写入。当然也可以定义字符数组缓冲区。
需要其他功能吗?
需要,高效。 Buffered
所以最终的流对象可以确认了。
BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
BUfferedWriter bufw=new BufferedWriter(new FileWriter("a.txt"));
//line=readLine();
//bufw.write(String);bufw.flush();
下面把需求一的代码写出来以供大家学习。
package 练习; import java.io.*; public class keyReader { public static void main(String[] args) throws IOException { keyReade(); } private static void keyReade() throws IOException { System.out.println("请用键盘输入你要录入的信息"); //1,通过IO流操作规律明确流对象 BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bufw=new BufferedWriter(new FileWriter("我的文件夹\\fos.txt")); String line=null; line=bufr.readLine(); bufw.write(line); bufw.newLine();//换行。 bufw.flush(); /* //想要循环的打印一行话,用下面的方法。 for(int i=1;i<5;i++){ bufw.write(line); bufw.newLine();//换行。 bufw.flush(); }*/ bufw.close(); bufr.close(); } }
下面是操作程序的结果。
我也是刚学不久,这些全是我自己总结的,有不足之处还望体谅。日后我会用自己有限的能力为大家做出更多的总结。
爱分享,爱生活。
相关文章推荐
- Java基础知识强化之IO流笔记72:NIO之 NIO核心组件(NIO使用代码示例)
- java提高篇(一) java知识汇总-------io流知识汇总(io学习流程)
- Java知识积累——Properties类的使用示例
- 提高你的Java代码质量吧:你能正确使用String、StringBuffer、StringBuilder吗
- Java中的IO流知识总结(转)
- java 代码优化 优化内存使用 防止内存泄露 优化代码规范 提高效率
- 提高java代码性能总结
- 使用临时变量提高Java代码性能
- Java中的IO流知识总结 【转】
- Java中的IO流知识总结(转)
- Eclipse初次java开发问题总结-4-Maven使用问题汇总
- Java知识积累——Properties类的使用示例
- Java【多线程知识总结(6)】使用Runnable接口创建多线程,处理同一个资源
- Java中的IO流知识总结(转)
- JAVA与JSON的使用方式及转换示例代码
- 提高你的Java代码质量吧:正确使用String、StringBuffer、StringBuilder
- 提高你的Java代码质量吧:推荐使用String直接量赋值