IO流
一、File类
File类以抽象的方式代表文件名和目录路径名。该类主要用于文件和目录的创建、文件的查找和文件的删除。
File对象代表值盘中实际存在的文件和目录。
常用构造方法:
new File(File parent,String child);
new File(String parent,String child);
new File(String pathName);
常用方法:
String getName(); 获取文件(夹)名。
String getpath(); 获取文件(夹)路径。
boolean exisits();文件(夹)是否存在。
bolean isFile(); 是否是一个文件。
boolean isDirectory(); 是否是一个目录(文件夹)。
boolean createNewFile(); 创建一个文件。
boolean mkdir(); 创建一个具体的文件夹。
boolean mkdirs(); 创建多级文件夹。
boolean delete(); 删除某个文件(夹)。
String [] list(); 返回某个文件夹下的所有文件(夹)名。
File [] listFiles(); 获取某个文件夹下所有的文件(夹)。
使用递归,输出某个文件夹下所有的文件,以及子文件夹中所有的文件。
public void showFile(){
if(f.isDirectory)//文件
system.out.println(f.getName()+":是一个文件夹");
File [] files = f.listFiles();
for(File file:files){
showFile(file);//递归,自己调用自己。
}
}else{//文件
system.out.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