流操作规则总结
?? 流对象有很多,不知道用哪个,这是很多初学者所郁闷的事情,但是如果你掌握一些流的操作小规则学起来就轻松多了
?
再选取流操作对象时首先要明确以下几点
1,明确源和目的
?源:输入流 InputStream Reader
?目的:输出流 OutputStream Writer
2,操纵的数据是不是纯文本
?是:字符流
?不是: 字节流
3,当体系明确后,再明确要使用哪个对象
?通过设备来区分
?原设备: 内存,硬盘,键盘
?目的设备: 内存,硬盘,控制台
?
?
举例
1,将一个文本文件中数据复制到另一个文件,复制文本文件
?源:因为是源,所以使用读取流。InputStream Reader
?是不是操作文本文件
?是!可以选择Reader
?这样体系就明确了
?接下来明确要使用该体系中的哪个对象。
?明确设备:硬盘上一个文件
?Reader 体系中可以操作文件的对像是 FileReader
?是否需要提高效率:是!加入Reader 体系缓冲区 BufferedReader
?
?FileReader fr = new FileReader("c:\\src.txt");
?BufferedReader bufr = new BufferedReader(fr);
?目的:使用输出流 OutputStream Writer
?是否是纯文本。
?是!Writer
?设备:硬盘,一个文件。
?Writer体系中可以操作文件的对像是FileWriter
?是否需要提高效率:是!加入 Writer 体系中缓冲区 BufferedWriter
?FileWriter fw = new FileWriter("d:\\src_copy.txt");
?BufferedWriter bufw = new BufferedWriter(fw)
?
?
2,将一个图片文件复制到另一个文件,复制图片文件
?源:因为是源,所以使用读取流。InputStream Reader
?是不是操作文本文件
?不是!可以选择 InputStream
?这样体系就明确了
?接下来明确要使用该体系中的哪个对象。
?明确设备:硬盘上一个文件
?InputStream 体系中可以操作文件的对像是 FileInputStream
?是否需要提高效率:是!加入 InputStream 体系缓冲区 BufferedInputStream
?
?FileInputStream fis = new FileInputStream("c:\\tupian.bmp");
?BufferedInputStream bis = new BufferedInputStream(fis);
?目的:使用输出流 OutputStream Writer
?是否是纯文本。
?不是!OutputStream
?设备:硬盘,一个文件。
?OutputStream 体系中可以操作文件的对像是 FileOutputStream
?是否需要提高效率:是!加入Writer体系中缓冲区 BufferedOutputStream
?FileOutputStream fos = new FileOutputStream("d:\\tupian_copy.bmp");
?BufferedOutputStream bos = new BufferedOutputStream(fos)