IO

流: 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。

IO流的分类
1、按照IO流的数据流动方向分
输入流
输出流
2、按照IO流的数据处理的最小单位分
字节流
字符流
3、根据IO流的作用分
节点流
处理流

IO流的四个基类
InputStream 字节输入流 Reader 字符输入流
OutputStream 字节输出流 Writer 字符输出流
在这里插入图片描述

和文件相关的IO流
类型
FileInputStream 文件字节输入流 用法:读取任意类型的文件
FileOutputStream 文件字节输出流 用 法:写数据到任意类型的文件
FileReader 文件字符输入流 用法:仅支持读取纯文本文
FileWriter 文件字符输出流 用法:仅支持将数据保存到纯文本文件中
读取
读取一个纯文本文件
(1)指定要读取的文件
File file = new File(“xx.txt”);
(2)创建文本文件的输入流
FileReader fr = null;
try{
fr = new FileReader(file);
(3)创建字符数组,用来保存读取的文本信息
char[] data = new char[10];
(4)用来记录每一次读取的字符个数
int len;
(5)用来拼接从文件读取的信息
StringBuilder sb = new StringBuilder();
(6)循环读取
while((len = fr.read(data))!=-1){
sb.append(new String(data,0,len));
}
System.out.println(sb);
}catch(Exception e){
//…
}finally{
//(7)释放资源
try{
if(fr!=null){
fr.close();
}
}catch(Exception e){
}
}

读取任意类型的文件
(1)指定文件
File file = new File("…");

(2)创建字节输入流
try(

FileInputStream fis = new FileInputStream(file);

){
(3)创建字节数组,用来存储每次读取的内容
byte[] data = new byte[1024];
(4)用len记录每次读取的字节数
int len;

(5)循环读取
while( (len = fis.read(data)) !=-1){
//…
}

}catch(Exception e){
//…
}

File
(1)获取文件的大小
long length()
递归获取目录的大小
public long getDirLength(File dir){
if(dir.isFile()){
return dir.length();
}else if(dir.isDirectory()){
long sum = 0;
File[] listFiles = dir.listFiles();
for (File sub : listFiles) {
sum += getDirLength(sub);
}
return sum;
}
return 0;
}
(2)获取文件或目录的名称
String getName()
(3)获取文件或目录的路径
String getPath():获取路径
String getAbsolutePath():获取绝对路径
String getCanonicalPath():获取规范路径
(4)获取文件的后缀名
String name = file.getName();//得到文件名 包含扩展名
String ext = name.substring(name.lastIndexOf(’.’));
(5)获取文件的最后修改时间
long lastModified() 毫秒数
(6)获取上一级目录
String getParent()
File getParentFile()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值