您的位置:首页 > 其它

IO流操作的规律

2015-10-21 17:05 246 查看

一、IO流操作规律

1、总结

IO流操作中,首先要明确开发中具体要使用哪个流对象。

2、明确流对象步骤

1,明确数据源,数据汇(数据目的)

其实就是在明确要使用的IO体系。InputStream outpurStream Reader Writer

需求中操作的是源:意味着是读,

InputStream Reader

需求中操作的是目的:意味着是写

OutputStream Writer

2,明确操作的数据是否是纯文本数据

是:字符流

否:字节流

是并且是源:Reader

是并且是目的:Writer

3,明确要操作的具体设备。每个设备都有对应的流对象

源设备:

硬盘:能操作File的对象都是,File开头的

键盘:System.in

内存:数组

网络:socket流

目的设备:

硬盘:能操作File的对象都是,File开头的对象

显示器:System.out

内存:数组

网络:socket流

4、明确是否需要额外的功能

需要高效:缓冲区,Bufferd开头的

需要编码转换:转换流

二、IO流操作规律应用

1、应用一

需求:通过键盘录入数据,将数据保存到一个文件中。

明确一:有源吗?有,有目的吗?有

源:InputStream Reader

目的:outStream Writer

明确二:是纯文本数据吗?是

源:Reader

目的:Writer

明确三:具体设备

源设备:键盘(System.in)

目的设备:硬盘

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"));

2、应用二

需求2:读取文本文件中的数据,将其打印到控制台上

明确一:有源吗?有,有目的吗?有

源:InputStream Reader

目的:outStream Writer

明确二:是纯文本数据吗?是

源:Reader

目的:Writer

明确三:具体设备

源设备:硬盘

目的设备:显示器 (System.out)

FileReader fr = new FileReader("a.txt");

OutputStream(PrintStream) out = System.out;

//fr读取数据到数组中。

//使用PrintStream 直接调用Println方法就可以打印了,如果使用OutputStream可以调用write方法就可以将数据写入到显示器中

//麻烦

因为源都是字符数据,可以通过字符流操作,将字符流转成字节再给显示器

明确四:需要额外功能吗?

需要转换 字符-->字符

FileReader fr = new FileReader("a.txt");

OutputStreamWriter osw = new OutputStreamWriter(system.out);

还需要其它功能吗、

需要高效

BufferedReader bufr = new BufferedReader(new FileReader("a.txt"));

BufferedWriter bufw = mew BufferedWriter(new OutputStreamWriter(system.out));

//读取一行数据

//写入一行数据
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: