Java中常用的IO函数及用法详解
1. File类
File类用于表示文件或目录路径名的抽象表示,提供了创建、删除、重命名等文件操作方法。常用方法如下:
1)创建文件或目录
File file = new File("filePath");
if(!file.exists()){
file.mkdirs(); // 创建文件或目录
}
2)删除文件或目录
File file = new File("filePath");
if(file.exists()){
file.delete(); // 删除文件或目录
}
3)重命名文件或目录
File file = new File("oldFilePath");
File newFile = new File("newFilePath");
if(file.exists()){
file.renameTo(newFile); // 重命名文件或目录
}
2. FileInputStream类
FileInputStream类用于从文件中读取数据流,可读取字节、字节数组等数据。常用方法如下:
1)读取单个字节
FileInputStream fis = new FileInputStream("filePath");
int data = fis.read();
System.out.println(data);
2)读取字节数组
byte[] buffer = new byte[1024];
int length = fis.read(buffer);
System.out.println(new String(buffer, 0, length));
3)关闭输入流
fis.close();
3. FileOutputStream类
FileOutputStream类用于向文件中写入数据流,可写入字节、字节数组等数据。常用方法如下:
1)写入单个字节
FileOutputStream fos = new FileOutputStream("filePath");
fos.write('a');
2)写入字节数组
byte[] buffer = new byte[1024];
fos.write(buffer);
3)清空输出缓冲区
fos.flush();
4)关闭输出流
fos.close();
4. BufferedReader类
BufferedReader类用于读取文本文件,提供了按行读取、跳过空白行等功能。常用方法如下:
1)按行读取文件
BufferedReader br = new BufferedReader(new FileReader("filePath"));
String line = "";
while((line = br.readLine()) != null){
System.out.println(line);
}
2)跳过空白行
while((line = br.readLine()) != null){
if(!line.trim().equals("")){
System.out.println(line);
}
}
3)关闭输入流
br.close();
5. BufferedWriter类
BufferedWriter类用于向文本文件中写入数据,提供了缓存写入、追加写入、换行等功能。常用方法如下:
1)缓存写入文件
BufferedWriter bw = new BufferedWriter(new FileWriter("filePath"));
bw.write("Hello World");
bw.flush(); // 将缓存区的数据写入文件
2)追加写入文件
BufferedWriter bw = new BufferedWriter(new FileWriter("filePath", true));
bw.write("Hello World");
bw.newLine(); // 换行
bw.flush();
3)关闭输出流
bw.close();
6. ObjectInputStream类
ObjectInputStream类用于从文件中读取Java对象,可用于反序列化Java对象。常用方法如下:
1)读取Java对象
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("filePath"));
Object obj = ois.readObject();
System.out.println(obj);
2)关闭输入流
ois.close();
7. ObjectOutputStream类
ObjectOutputStream类用于将Java对象写入文件,可用于序列化Java对象。常用方法如下:
1)将Java对象写入文件
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("filePath"));
oos.writeObject(obj);
2)清空输出缓冲区
oos.flush();
3)关闭输出流
oos.close();
