IO流

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值