一.File类
File类以抽象的方式代表文件名和目录路径名。该类主要用于文件和目录的创建、文件的查找和文件的删除等。
File对象代表磁盘中实际存在的文件和目录。通过以下构造方法创建一个File对象。
- 常用构造方法
new File(File parent,String child );
new File(String parent,String child);
new File(String pathName);
- 常用方法
方法名 | 描述 |
---|---|
String getName() | 获取文件(夹)名 |
String getPath() | 获取文件(夹)路径 |
boolean exists() | 文件(夹)是否存在 |
boolean isFile() | 是否是一个文件 |
boolean isDirectory() | 是否是一个目录(文件夹) |
boolean createNewFile() | 创建一个文件 |
boolean mkdir() | 创建一个具体的文件夹 |
boolean mkdirs() | 创建多级文件夹 |
boolean delete() | 删除某个文件(夹) |
String [] list() | 返回某个文件夹下的所有文件(夹)名 |
File [] listFiles() | 获取某个文件夹下所有的文件(夹) |
使用递归,输出某个文件夹下所有的文件,以及子文件夹中所以的文件。
public void showFile(File f){
if(f.isDirectory()){//文件夹
System.out.println(f.getName()+":是一个文件夹:");
File[] files = f.listFiles();
for (File file : files) {
showFile(file);//递归:调用自己
}
}else {//文件
System.err.println(f.getName()+":是一个文件");
}
}
二.字节流
1.字节输入流
- 构造方法
new FileInputStream(String文件路径);
new FileInputStream(File文件对象);
- 使用步骤
1.创建输入流流对象
2.调用read方法
3.关闭流对象
- read方法:从字节输入流中读取数据
//无参,返回一个字节,表示读取一个字节数据
int read()
//传入一个字节数组,表示将读到的字节存入数组中,返回存入的字节个数
int read(byte[] bytes)
//传入一个字节数组,数组下标,存放个数,表示将读到的字节存入数组,从数组的第off+1个元素开始存放,共存放len个。返回实际存入的字节个数。
int read(byte[] b,int off,int len)
- 常用方法
//返回字节输入流中还有多少个可以读取的字节个数
int available();
2.字节输出流
- 构造方法
new FileOutputStream(String);
new FileOutputStream(String,Boolean);
new FileOutputStream(File);
new FileOutputStream(File,Boolean);
- 使用步骤
1.创建输出流对象
2.调用write方法
3.关闭流对象
- write方法:向字节输出流中写入数据
//写入一个字节数据b
void write(int b);
//将字节数组b写入输出流中
void write(byte[] b);
//从字节数组b的第off+1个元素开始,向输出流中写入len个字节
void write(byte[] b,int off,int len);
扩充:带缓冲区字节输入流和输出流
BufferedInputStream
BufferedOutputStream
三.字符流
1.字符输入流
- 构造方法
new FileReader(String);
new FileReader(File);
- 使用步骤
1.构建流对象
2.调用read方法
3.关闭流对象
- read方法:从字符输入流中读取字符数据
//读取一个字符,并返回读到的字符,如果没有读到,返回-1
int read();
//读取到的字符存入字符数组c
read(char[] c);
//读取到的字符存入字符数组c,从下标offset开始,个数为len
read(char[] c,int offset,int len);
2.字符输出流
- 构造方法
new FileWriter(String);
new FileWriter(String,boolean);
new FileWriter(File);
new FileWriter(File,boolean);
- write方法:向字符输出流中写入字符数据
//写入一个字符
void write(int c)
//写入一个字符串
void write(String str)
//写入一个字符数组
void write(char[] c)
//写入一个字符串,从off开始,写len个
void write(String str,int off,int len)
//写入一个字符数组,从off开始,写len个
void write(char[] c,int off,int len)
四.其它流–扩展
1.缓冲流
-
BufferedInputStream
-
BufferedOutputStream
-
BufferedReader
-
BufferedWriter
2.转换流
- InputStreamReader
- OutputStreamWriter
3.数据流
- DataInputStream
- DataOutputStream
4.对象流
- ObjectInputStream
- ObjectOutputStream