一、概述:
|
了解 |
1、二进制文件的读写; 2、重定向标准IO; 3、对象的序列化。 |
|
理解 |
1、File类及其使用; 2、Java流的概念及其分类; 3、文本文件的读写。 |
|
运用 |
1、使用Java流读写文本文件。 |
二、IO概述
1、

2、java.io包
|
读取 |
写入 |
|
打开流 |
打开流 |
|
如有更多信息则读取信息 |
如有更多信息则写入信息 |
|
关闭流 |
关闭流 |
三、File类
1、在java.io.File
2、File类的构造方法
|
构造方法 |
说明 |
|
File(String pathname) |
接收文件名作为字符串,通过将给定路径名字符串转换为抽象路径名来创建一个新File实例; |
|
File(String parent,String child) |
根据parent路径名字符串和child路径名字符串创建一个新File实例; |
|
File(File parent,String child) |
根据parent抽象路径名和child路径名字符串创建一个新File实例; |
|
File(URI uri) |
通过将给定的file:URI转换为一个抽象路径名来创建一个新的File实例。 |

3、File类常用方法
(1)查询文件属性


这是差不多的常用的方法,还有其他方法可以查API
(2)创建和删除文件以及目录




四、java中的流
1、流的概述
(1)流的概念
流就是一连串流动的字符

(2)流特性
先进先出的方式传递信息(有序的);一个字节序列;具有方向性:输入流、输出流。
(3)读写在流中的概述
v 流与源数据源和程序之间的关系:
v流与目标数据源和程序之间的关系:
2、流分类
(1)按照流向划分

流的基类:
|
按流向区分 |
输出流——OutputStream和Writer作为基类 |
|
输入流——InputStream和Reader作为基类 |
(2)按照处理数据单元划分

|
按照处理数据单元划分 |
字节流 |
字节输入流InputStream基类 |
|
字节输出流OutputStream基类 | ||
|
字符流 |
字符输入流Reader作为基类 | |
|
字符输出流Writer作为基类 |

(3)字节流与字符流的区别:
|
字节流 |
字节流读取的时候,读到一个字节就返回一个字节 |
|
字节流可以处理所有类型数据,如图片,mp3,avi等。 | |
|
字符流 |
字符流使用了字节流读到一个或多个字节(中文对应的字节数是两个,UTF-8码表中是3个字节)时,先去查指定的编码表,将查到的字符返回。 |
|
而字符流只能处理字符数据。 |
总之,只要是处理纯文本的数据,就要优先考虑字符流,除此之外都使用字节流。
五、字节流
1、字节流可以操作任何数据,字节流使用的数组是字节数组,byte[]buf
2、字节流基类(InputStream/OutputStream)概述
(1)InputStream的体系结构

(2)java.io.InputStream包

(3)OutputStream的体系结构

(4)java.io.OutputStream包

3、FileInputStream与FileOutputStream读文本文件
(1)FileInputStream类
v FileInputStream是InputStream的子类;
v FileInputStream的构造方法:
|
构造方法 |
说明 |
|
FileInputStream(File file) |
File指定文件数据源 |
|
FileInputStream(String name) |
Name指定文件数据源,包含路径信息 |
v 读取文件内容示例



步骤:第一步:创建对应的流;第二步:根据流的方法读写文件内容;第三步:关闭流。
(2)FileOutputStream类
v FileOutputStream是OutputStream类的子类;
v FileOutputStream的构造方法:
|
构造方法 |
说明 |
|
FileOutputStream(File file) |
File指定文件目标数据源 |
|
FileOutputStream(String name) |
Name指定文件目标数据源,包含路径信息 |
|
FileOutputStream(String name,boolean append) |
append若true,则在文件末尾添加数据 |
v 示例:同输入流,但是值得注意的是,字节流操作的数据是字节数组。
六、字符流
1、字符流基类概述
因为数据通常都以文件形式存在,所以就要找到IO体系中可以用于操作文件的流对象。通过名称可以更容易获取该对象,因为IO体系中的子类名后缀绝大部分是父类名称,而前缀都是体现子类功能的名字。
(1)Reader的体系结构

(2)java.io.Reader包

(3)Writer的体系结构

(4)java.io.Writer包

2、FileReader与FileWriter对文件(文本文件)的读写
3743

被折叠的 条评论
为什么被折叠?



