第十章 总结 File I/O
程序的主要任务就是操作数据。
文件是指相关记录或放在一起的数据的集合。
10.1.1 使用File类操作文件或目录属性
Java.io 包提供了一些接口和类,对文件进行基本的操作,包
File对象即可以表示文件,也可表示目录,利用它可用来对文件或目录进行基本的操作
创建一个File对象
File file=new File(String pathName);
File对象是java.io包中引用磁盘文件的唯一对象。
File类提供了一些重要的方法来管理文件或目录的属性。
常用方法
Boolean exists() 判断文件或目录是否存在
Boolean isFile() 判断是否是文件
Boolean isDirectory() 判断是否是目录
String getPath() 返回此对象表示的文件的相对路径名
String getAbsolutePath() 返回此对象表示的文件的绝对路径名
String getName() 返回此对象表示的文件或目录的名称
Boolean delete() 删除此对象指定的文件或目录
Boolean createNewFile() 创建名称的空文件,不创建文件夹
Long length() 返回文件的长度,单位为字节,若文件不存在,则返回)0L
10.2 Java的流
File类不能访问文件的内容。
读文件,是把文件中的数据读取到内存中,
写文件,是指把内存中的数据写到文件中
流,是指一连串流动的字符,是以先进先出的方式发送和接收数据的通道。
在程序中,这些输入,输出流的类的对象成为流对象。
数据源分为源数据源和目标数据源。
输入流联系的是源数据源。
输出流联系的则是目标数据源。
输入流:只能从中读取数据,而不能向其中写入数据。
InputStream和Reader作为基类
输出流:只能向其中写入数据,而不能从中读取数据。
OutputStream和Write作为基类
字节流操作的最小数据单元为8位的字节,而字符流操作的最小数据单元是16位的字符。
字节流建议用于二进制数据(如图片),而字符流用于文本。
10.3 读写文本文件
1.字节输入流InputStream类
字节输入流InputStream的作用就是将文件中的数据输入到内存中,常用方法
Int read() 读取一个字节数据,转换为0-255之间的整数返回。
Int read(byte[] b) 将数据读取到字节数组中
Int read(byte[] b, int off, int len) 从输入流中读取最多len长度的字节,保存到字节数组b中,保存的位置从off开始
Void close() 关闭输入流
Int available() 返回输入流读取的估计字节数
2.字节输入流FileInputStream类
通常使用InputSteam的子类FileInputStream类来实现文本文件内容的读取。
创建文件输入流对象
(1)FileInputStream(File file)
File指定文件数据源
File file = new File(“ C:\\test.txt”);
InputStream is=new FileInputStream(file);
这样,文件输入流对象is就和源数据源(C:\\test.txt文件)联系起来了。
(2)FileInputStream(String name)
Name指定文件数据源,包含路径信息
InputStream is= new FileInputStream(“C:\\test.txt”);
3.使用FileInputStream读取文件
具体使用步骤
(1)引入相关的类
(2)创建一个文件输入流对象
(3)利用文件输入流的方法读取文本文件的数据
(4)关闭文件输入流对象
10.3.2 使用字节流写文本文件
字节输出流OutputStream的作用是把内存中的数据输出到文件中,常用方法
Void write(int c) 写入一个字节数据
Void write(byte[] buf) 写入数组buf的所用字节
Void write(byte[] b, int off, int len) 将字节数组中从off位置开始,长度为len的字节数据输出到输出流中
Void close() 关闭输出流
2.字节输出流FileOutputStream类
通常使用OutputStream的子类FileOutputStream类来实现向文本文件写入数据。
常用的构造方法有3个
(1)FileOutputStream(File file)
File指定文件目标数据源
File file=new File(“C:\\test.txt”);
FileOutputStream fos=new FileOutputStream(file);
文件输出流对象fos和目标源数据源(C:\\test.txt文件)就联系起来了
(2)FileOutputStream(String name)
Name指定文件目标数据源,包含路径信息。
FileOutputStream fos=new FileOutputStream(“C:\\test.txt”);
(3) FileOutputStream(String name,boolean append)
Name指定文件目标数据源,包含路径信息。
Append表示是否在文件末尾添加数据,若为true,则在文件末尾添加数据
FileOutputStream fos=new FileOutputStream(“C:\\test.txt”,true);
3.使用FileOutputStream写文本文件具体使用步骤
(1)引入相关的类
(2)构造一个文件输出流对象
(3)利用文件输出流的方法把数据写入文本文件中
String str=”好好学习Java”;
Byte[] words=str.getBytes();
//利用write方法将数据写入文本文件中
Fos.write(words,0,words.length);
(4)关闭文件输出流。
Fos.close();