java学习-----IO
2015-11-11 20:43
435 查看
一、IO流对象的继承关系
![](http://img.blog.csdn.net/20151111200053461)
掌握:
掌握File类的使用
掌握IO原理
掌握文件流、缓冲流、 转换流
掌握数据流、打印流、对象流
掌握随机存取文件流、ZIP文件流
二、IO流:用于处理设备上的数据
设备:硬盘,内存,键盘输入
IO流有具体的分类:
1、根据处理的数据类型不同:字节流和字符流
2、根据流向不同:输入流和输出流
字节流和字符流的区别:
1、字节流读取的时候,读到一个字节就返回一个字节
字符流使用了字节流读到一个或者多个字节时,先去查指定的码表,将查到的字符返回。
2、字节流可以处理所有类型数据,如图片,mp3,avi.
而字符流只能处理字符数据。
结论:只要是处理纯文本数据,就优先考虑使用字符流,除此之外都用字节流。
三、IO体系,所具备的基本功能就是读和写
1、字节流
InputStream (读),OutputStream(写)
2、字符流
Reader(读) Writer(写)
基本的读写操作方式:
所有字符输入流类都是抽象类Reader的子类
Reader的主要方法有:
int read() 从源中读取一个字符的数据,返回字符值
int read(char b[]) 从源中试图读取b.length个字符到b中,返回实际读取的字符数目
void close() 关闭输入流
Reader读取文件的步骤:
2.Writer :表示字符输出流的所有类的超类
所有字符输出流类都是抽象类Writer的子类、最常用的子类是FileWriter类
Writer的常用方法有:
FileReader (专门用于处理文件的字符读取流对象)
FileWriter(专门用于处理文件的字符写入的流对象):
该类没有特有的方法,只有自己的构造函数,特点在于:用于处理文本文件;该类有默认的编码表;该类中有临时缓冲。
例子:
四、缓冲流
1、BufferedInputStream和 BufferedOutputStream:针对字节流
2、BufferedReader 和BufferedWriter:针对字符流
掌握:
掌握File类的使用
掌握IO原理
掌握文件流、缓冲流、 转换流
掌握数据流、打印流、对象流
掌握随机存取文件流、ZIP文件流
二、IO流:用于处理设备上的数据
设备:硬盘,内存,键盘输入
IO流有具体的分类:
1、根据处理的数据类型不同:字节流和字符流
2、根据流向不同:输入流和输出流
字节流:因为文件编码的不同,而有了对字符进行高效操作的字符流对象。 原理:其实就是基于字节流读取字节时,去查了指定的码表
字节流和字符流的区别:
1、字节流读取的时候,读到一个字节就返回一个字节
字符流使用了字节流读到一个或者多个字节时,先去查指定的码表,将查到的字符返回。
2、字节流可以处理所有类型数据,如图片,mp3,avi.
而字符流只能处理字符数据。
结论:只要是处理纯文本数据,就优先考虑使用字符流,除此之外都用字节流。
三、IO体系,所具备的基本功能就是读和写
1、字节流
InputStream (读),OutputStream(写)
2、字符流
Reader(读) Writer(写)
基本的读写操作方式:
因为数据通常都以文件形式存在。 所以就要找到IO体系中可以用于操作文件的流对象 通常名称可以更容易获取对象。 因为IO体系中的子类名后缀绝大部分是父类名,而前缀都是体现子类功能的名字。
所有字符输入流类都是抽象类Reader的子类
Reader的主要方法有:
int read() 从源中读取一个字符的数据,返回字符值
int read(char b[]) 从源中试图读取b.length个字符到b中,返回实际读取的字符数目
void close() 关闭输入流
Reader读取文件的步骤:
创建字符输入流对象,负责读取文件 创建中转站数组,存放读取的内容 读取文件内容到数组 输出保存在数组中的文件内容 关闭输入流
2.Writer :表示字符输出流的所有类的超类
所有字符输出流类都是抽象类Writer的子类、最常用的子类是FileWriter类
Writer的常用方法有:
void write(int n) 向输出流写入单个字符 void write(char b[]) 向输出流写入一个字符数组 void write(String str) 向输出流写入一个字符数组 void close() 关闭输出流
FileReader (专门用于处理文件的字符读取流对象)
FileWriter(专门用于处理文件的字符写入的流对象):
该类没有特有的方法,只有自己的构造函数,特点在于:用于处理文本文件;该类有默认的编码表;该类中有临时缓冲。
例子:
import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; /** 用FileReader和FileWriter实现字符文本文件复制的功能 */ public class TextCopyTest { public static void main(String[] args) { FileReader fr = null; FileWriter fw = null; int c = 0; try { //step1:创建IO流对象 fr = new FileReader("d:\\IOTest\\source.txt"); fw = new FileWriter("d:\\IOTest\\dest2.txt"); int length = 0; char[] cbuf = new char[8192]; // while((c = fr.read(cbuf))!= -1){ //一次性读取指定字符数组长度的数据 fw.write(cbuf, 0, length); //一次性写入指定字符数组指定位置的数据} while ((c = fr.read()) != -1) {//从源文件中读取字符 fw.write(c); //往目标文件中写入字符 } fw.flush(); //刷新输出流 } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { //关闭所有的IO流对象 try { if (null != fw) { fw.close(); } } catch (IOException e) { e.printStackTrace(); } try { if (null != fr) { fr.close(); } } catch (IOException e) { e.printStackTrace(); } } }}
四、缓冲流
1、BufferedInputStream和 BufferedOutputStream:针对字节流
2、BufferedReader 和BufferedWriter:针对字符流
相关文章推荐
- java知识系列之读写cookie
- JAVA jdom解析xml简单用法
- Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程
- java xml是什么,作用是什么
- JAVA POI读写excel简单应用
- java 异常在实际应用中的总结
- java定时器Timer当执行时间大于间隔时间会怎样
- Java数组
- java定时器初探
- java基础内存分析
- JAVA中File类遍历目录解析
- MyEclipse安装插件
- 第10章 多环境下构建项目
- java 时间使用
- 第4章 maven依赖特性
- Myeclipse注册方法
- 【java】基本数据类型
- 第2章 Windows 和 Eclipse的配置
- 第2章 Windows 和 Eclipse的配置
- java 获取系统变量he环境变量