一、IO流的基本概念
IO流主要勇于硬盘、内存、键盘等处理器设备上得到数据操作,
根据处理数据类型的不同分为:
(1)字节流(抽象基类为InPutStream和OutPutStream)
(2)字符流(抽象基类为Reader和Writer)
根据流向不同分为:输入流和输出流
二、字符流与字节流的区别:
1.字节流读取的时候,读到一个字节就返回一个字节;字符流使用了字节流读到一个或多个字节(中文是两个字节,在UTF-8中是3个字节)时,先查指定编码,将查到的字符返回。
2.字节流可以处理所有类型数据(图片,MP3,AVI视频文件),而字符流只能处理字符数据。
3.只要是处理纯文本数据,就优先考虑使用字符流,除此之外都用字节流
三、部分类具体描述
(1)、缓冲流(BufferedInputStream/BufferedOutputStream和BufferedWriter/BufferedReader)可以提高流的操作效率
写入缓冲对象:
BufferedWriter bw = new BufferedWriter(new FileWriter("文件地址"));
读取缓冲区对象:
BufferedReader br = new BufferedReader(new FileReader(”文件地址“));
该类型的流有一个特有的方法:readLine();(一次读一行,到行标记时,将行标记之前的字符数据操作作为字符串返回,当读到末尾时,返回null,WriteLine()方法同理)
(2)、转换流(InputStreamReader/OutputStreamWriter)
该类型是字节流和字符流之间的桥梁,该流对象可以对读取到的字节数据进行指定编码的编码转换。
1.InputStreamReader(InputStream);//通过构造函数初始化,使用的是本系的默认编码(如GBK)
2.InputStreamWriter(InputStream,String charSet);//通过构造函数初始化,可以指定编码表
3.OutputStreamReader(OutputStream);//通过构造函数初始化,使用默认编码
4.OutputStreamWriter(OutputStream,String charSet);//通过构造函数初始化,可以指定编码表
注意:在使用FileReader操作文本数据时,该对象使用的是默认编码表,
即:FileReader fr = new FileReader("文件地址");与InputStreamReader isr = new InputStreamReader(new FileInputStream("文件地址"));的意义不同。
如果要指定编码,必须用转换流,即使文件中的字符数据是UTF-8的形式编码,在读取是必须指定编码表,就必须用到转换流
即:InputStreamReader isr = new InputStreamReader(new FileInputStream("文件地址",UTF-8));
(3) 、数据流(DataInputStream/DataOutputStream)
该数据流可以方便的对一些基类行数据进行直接的存储和读取,不需要进行再一步进行转换,通常只要操作的是基本数据类型的数据,就需要通过DataStream进行装包
构造方法:
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余3页未读,立即下载
- 1
- 2
前往页