黑马程序员_java IO流
2013-03-23 22:28
246 查看
黑马程序员_java IO流
[align=center]------android培训、java培训、期待与您交流!------[/align]
一:什么是流?
答:流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。
二:IO流的分类
根据处理数据类型的不同分为:字符流和字节流
根据数据流向不同分为:输入流和输出流。
1.字符流和字节流:
字符流的由来: 因为数据编码的不同,而有了对字符进行高效操作的流对象。本质其实就是基于字节流读取时,去查了指定的码表。
字节流和字符流的区别:
读写单位不同:字节流以字节(byte)为单位,字符流以字符为单位,根据码表映射字符,一次能读多个字节。
处理对象不同:字节流能处理所有类型的数据(如图片、avi等),而字符流只能处理字符类型的数据。
结论:只要是处理纯文本数据,就优先考虑使用字符流。 除此之外都使用字节流。
2.输入流和输出流(四大输入流输出流抽象类,IO中所有用于读写操作的IO类均继承了这四大抽象类)
(1).Reader//字符输入流 (Reader
是所有的输入字符流的父类,它是一个抽象类)
(2).Writer//字符输出流 (Writer 是所有的输出字符流的父类,它是一个抽象类)
(3).InputStream//字节输入流 (InputStream 是所有的输入字节流的父类,它是一个抽象类)
(4).OutputStream//字节输出流 (OutputStream 是所有的输出字节流的父类,它是一个抽象类)
值得注意的是:给了使IO中的这些类,更加容易记忆java统一了命名规范,IO操作类的类名前面表明了操作功能,后面表明了流方向
如:FileInputStream这个IO操作类,File说明它是用来操作文件的,InputStream代表此类属于字节输入流
![](http://img.my.csdn.net/uploads/201303/23/1364049924_2603.jpg)
三:字符流与字节流转换
转换流的特点:
其是字符流和字节流之间的桥梁
可对读取到的字节数据经过指定编码转换成字符
可对读取到的字符数据经过指定编码转换成字节
何时使用转换流?
当字节和字符之间有转换动作时;
流操作的数据需要编码或解码时。
具体的对象体现:
InputStreamReader:字节到字符的桥梁
OutputStreamWriter:字符到字节的桥梁
这两个流对象是字符体系中的成员,它们有转换作用,本身又是字符流,所以在构造的时候需要传入字节流对象进来。
案例1(字节流转字符流)
案例2(字符流转为字节流)
总结:
操作IO类,其实很简单,操作之前考虑几件事情就好了
1.操作什么类型的数据?除了字符用字符流外,其他数据类型全用字节流操作
2.做什么操作,是读取还是写出?读取用输入流,写出用输出流
3.看操作的设备?主要分为源和目的。
常用的源设备有(1).硬盘 (2).内存 (3).键盘
常用的目的设备(4).硬盘 (5).内存。
针对上面的情况分别可以使用的类
(1)FileInputStream
(2)ByteArrayInputStream
(3)System.in
(4)FileOutputStream
(5)ByteOutputStream
邮箱:wolaoben7252@qq.com
[align=center]------android培训、java培训、期待与您交流!------[/align]
一:什么是流?
答:流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。
二:IO流的分类
根据处理数据类型的不同分为:字符流和字节流
根据数据流向不同分为:输入流和输出流。
1.字符流和字节流:
字符流的由来: 因为数据编码的不同,而有了对字符进行高效操作的流对象。本质其实就是基于字节流读取时,去查了指定的码表。
字节流和字符流的区别:
读写单位不同:字节流以字节(byte)为单位,字符流以字符为单位,根据码表映射字符,一次能读多个字节。
处理对象不同:字节流能处理所有类型的数据(如图片、avi等),而字符流只能处理字符类型的数据。
结论:只要是处理纯文本数据,就优先考虑使用字符流。 除此之外都使用字节流。
2.输入流和输出流(四大输入流输出流抽象类,IO中所有用于读写操作的IO类均继承了这四大抽象类)
(1).Reader//字符输入流 (Reader
是所有的输入字符流的父类,它是一个抽象类)
(2).Writer//字符输出流 (Writer 是所有的输出字符流的父类,它是一个抽象类)
(3).InputStream//字节输入流 (InputStream 是所有的输入字节流的父类,它是一个抽象类)
(4).OutputStream//字节输出流 (OutputStream 是所有的输出字节流的父类,它是一个抽象类)
值得注意的是:给了使IO中的这些类,更加容易记忆java统一了命名规范,IO操作类的类名前面表明了操作功能,后面表明了流方向
如:FileInputStream这个IO操作类,File说明它是用来操作文件的,InputStream代表此类属于字节输入流
![](http://img.my.csdn.net/uploads/201303/23/1364049924_2603.jpg)
三:字符流与字节流转换
转换流的特点:
其是字符流和字节流之间的桥梁
可对读取到的字节数据经过指定编码转换成字符
可对读取到的字符数据经过指定编码转换成字节
何时使用转换流?
当字节和字符之间有转换动作时;
流操作的数据需要编码或解码时。
具体的对象体现:
InputStreamReader:字节到字符的桥梁
OutputStreamWriter:字符到字节的桥梁
这两个流对象是字符体系中的成员,它们有转换作用,本身又是字符流,所以在构造的时候需要传入字节流对象进来。
案例1(字节流转字符流)
import java.io.*; public class Test{ public static void main(String[] args)throws Exception{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); //System.in这个对象是一个字节输入流,为了方便操作字符,特将它转为字符输入流
InputStreamReader isr=new InputStreamReader(new FileInputStream("in.txt"),"UTF-8");
//通过转化流可以按照自定义编码格式读取字符 } }
案例2(字符流转为字节流)
import java.io.*; public class Test{ public static void main(String[] args)throws Exception{ OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("out.txt"),"UTF-8");
//通过转换流,可以按照自定义编码格式写出字符。 } }
总结:
操作IO类,其实很简单,操作之前考虑几件事情就好了
1.操作什么类型的数据?除了字符用字符流外,其他数据类型全用字节流操作
2.做什么操作,是读取还是写出?读取用输入流,写出用输出流
3.看操作的设备?主要分为源和目的。
常用的源设备有(1).硬盘 (2).内存 (3).键盘
常用的目的设备(4).硬盘 (5).内存。
针对上面的情况分别可以使用的类
(1)FileInputStream
(2)ByteArrayInputStream
(3)System.in
(4)FileOutputStream
(5)ByteOutputStream
邮箱:wolaoben7252@qq.com
相关文章推荐
- 黑马程序员——Java基础——IO流(FileWriter)
- 黑马程序员--------java IO流 Reader、Writer、InputStream、OutputStream
- 黑马程序员——Java IO流(二)
- 黑马程序员——高新技术---Java基础-IO流_File类,递归思想
- 黑马程序员<Java笔记<IO流>>
- 黑马程序员——Java基础---io流
- 黑马程序员-----Java基础-----IO流-2
- 黑马程序员——Java语言基础——07.IO流(1)字符流和字节流
- 黑马程序员——Java基础->IO流(下)
- 黑马程序员——java第二十一、二十二天:IO流(二)
- 黑马程序员 java学习笔记——IO流3
- 黑马程序员_java的IO流(第二十课总结)
- 黑马程序员-java之IO流应用
- 黑马程序员——java IO流
- 黑马程序员_Java语言_IO流_
- 黑马程序员_java中的IO流2
- 黑马程序员--Java基础学习笔记【IO流-字节流、转换流】
- 黑马程序员-----Java基础-----IO流(一)
- 黑马程序员_JAVA学习日记_JAVA中的IO流
- 黑马程序员——java基础---IO流