第八章 File I/O
1. 操作文件或目录的属性
使用File类操作文件和目录
File flie=new File(所指向的文件路径名) //文件类 FileMethods fm=new FileMethods(flie); //文件方法 文件
File类的常用方法
方法名称 | 说明 |
---|---|
boolean exists() | 判断文件或目录是否存在 |
boolean isFile() | 创建名称的空文件,不创建文件夹 |
boolean isDirectory() | 删除文件或目录 |
String getPath() | 判断是否是文件 |
String getAbsolutePath() | 判断是否是目录 |
String getName() | 文件名称 |
boolean delete() | 相对路径 |
boolean createNewFile() | 绝对路径 |
long length() | 文件长度,单位是字节 |
2.Java的流
分类
-
按照流向划分
输入流:只能读取数据,不能写入数据
输出流:只能写入数据,不能读取数据
-
按照所操作的单元划分
字节流:操作的最小数据单位是8位的字节
字符流:操作的最小数据单位是16位的字节
按照处理器单元划分(四个抽象类)
3.使用字节流读写文本文件
-
使用字节流读取文本文件
字节输入流InputStream类
File file=new File(所指向的文件路径名); InputStream fis=new FileInputStream(file); //字符输入流FileInputStream类,是InputStream的子类
读取数据的常用方法(字节、字符都适用)
方法名称 说明 int read() 读取一个字节数据 int read(byte[] b) 将数据读取带字节数组中 int read(byte[] b,int off,int len) 从输入流中读取最多len长度的字节,保存带字节数组b中,保存位置从off开始 void close() 关闭输入流 int available() 返回输入流读取的估计字节数 -
使用字节流写文本文件
字节输出流OutputStream类
File file=new File(所指向的文件路径名); OutputStream fos=new FileOutputStream(file); //字符输入流FileOutputStream类,是OutputStream的子类
OutputStream类的常用方法
方法名称 说明 void write(int c) 写入一个字节数据 void write(byte[] buf) 写入数组buf的所有字节 void write(byte[] b,int off,int len) 将字节数组中从off位置开始,长度为len的字节数据输出到输出流中 void close() 关闭输出流
4.使用字符流读写文本文件
-
使用字符流读取文本文件
字符输入流Reader类
Reader fr=new FileReader(所指向的文件路径名); //字符输入流FileReader类,是Reader的子类
Reader类常用方法
与字节输入流方法一样
-
使用字符流写文本文件
字符输出流Writer类
Writer fw=new FileWriter(所指向的文件路径名); //字符输入流FileWriter类,是Writer的子类
Writer类常用方法
方法名称 说明 write(String str) 将str字符串里包含的字符输出到指定的输出流中 write(String str,int off,int len) 将str字符串里从off位置开始长度为len的字符输出到输出流中 void close() 关闭输出流 void flush() 刷新输出流 5.二进制文件的读写
-
使用字节流类DataInputStream读二进制文件
FileInputStream fis=new FileInputStream(所指向的文件路径名); DataInputStream dis=new DataInputStream(fis); //DataInputStream是FileInputStream的子类 dis.read(); //读取数据字节 dis.close(); //关闭数据流
-
使用字节流类DataOutputStream写二进制文件
FileOutputStream outFile=new FileOutputStream(所指向的文件路径名); DataOutputStream out=new DataOutputStream(outFile); //DataOutputStream是FileOutputStream的子类 out.write(); //将指定字节数据写入二进制文件 out.close(); //关闭数据流
-