I/O流与文件操作

一.FILE类

1.概述

在这里插入图片描述

2.FILE类的静态成员变量(可以通过类名直接访问)

在这里插入图片描述

3.绝对路径和相对路径

在这里插入图片描述

4.FILE类的构造方法

第一个构造方法FILE(string name)
在这里插入图片描述
第二种构造方法(string parent,string child)
在这里插入图片描述第三种构造方法(file parent,string child)
在这里插入图片描述

5.FILE中的获取方法

在这里插入图片描述
getAbsolute()方法:
在这里插入图片描述
getPath()方法(tostring方法调用的就是getpath方法) :
在这里插入图片描述
getName()方法:
在这里插入图片描述
lenth方法:
在这里插入图片描述

6.FILE中的判断方法

在这里插入图片描述
exists()方法
在这里插入图片描述
在这里插入图片描述

7 创建以及删除文件的方法

在这里插入图片描述
creatNewFile()方法:
在这里插入图片描述mkdir和mkdirs方法:
在这里插入图片描述
delete方法:
在这里插入图片描述

7.遍历文件功能

在这里插入图片描述
在这里插入图片描述

二.文件的递归操作

1. 什么是递归

在这里插入图片描述注意:在这里插入图片描述

例题:使用递归计算1-n的和
在这里插入图片描述
在这里插入图片描述
原理解析:(注意:if里的return是返回方法调用处)
在这里插入图片描述

2. 递归打印多级目录

在这里插入图片描述

3.文件搜索

接上个例子的代码
在这里插入图片描述
优化处理:
在这里插入图片描述

三.FileFilter过滤器的原理和使用

在这里插入图片描述

1.过滤筛选出目标文件

筛选出java类型的文件
在这里插入图片描述
实现类在这里插入图片描述
可以使用匿名内部类以及lambda表达式进行优化,老师这里讲的有点乱,等看完后找时间操练一下
在这里插入图片描述

四.I/O流

1.基本概念

计算机中存储内容均为字节形式

在这里插入图片描述

2.字节输出流概念以及相关方法

写入的时候会有创建文件的功能

在这里插入图片描述

3.字节输出流写入数据到文件

从内存写入硬盘
在这里插入图片描述
实例:在指定目录下创建a.txt文件并写入97
注意:必须在创建对象的时候抛出IO异常

在这里插入图片描述

4.文件的存储原理

在这里插入图片描述

5.字节流输出多个字节的方法

在这里插入图片描述在这里插入图片描述

6.数据流的续写和换行

在这里插入图片描述
例子:
在这里插入图片描述

7.字节输入流【Inputstream】从文件中读取数据

基本定义和使用
在这里插入图片描述在这里插入图片描述
例子:创建语句省略
在这里插入图片描述
fis.read()会自动读取下一个字节

8.字节输入流一次读取多个数据操作*

**
在这里插入图片描述

示例:文件内为ABCDE
在这里插入图片描述
解析:
在这里插入图片描述

优化:
在这里插入图片描述

9.文件复制

原理:
在这里插入图片描述

方法一:一个字节一个字节地读写(耗时)
在这里插入图片描述
优化方案:
在这里插入图片描述

五.字符输入输出流

输入输出是相对于内存而言,把内存里的数据输出(写)到文件中-output,把文件中的数据输入(读)到内存–intput

解决读取中文的问题

1.FileReader类—文件输入字符流(字符输入流)

父类是reader 类

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
实例:
一次读取单个字符
在这里插入图片描述

一次读取多个字符
在这里插入图片描述

2.FileWriter-字符输出流

父类是reader
定义:
在这里插入图片描述
在这里插入图片描述
示例:注意,此处出现了flush
在这里插入图片描述

3.flush方法和close方法的区别

flush刷新后流可以继续使用,close了之后流就不能再使用了

4.字符输出流写数据的其他方法

在这里插入图片描述
在这里插入图片描述
5.字符流的续写和换行(与字节相同)
在这里插入图片描述
在这里插入图片描述

5.trycatch处理流的异常情况

在这里插入图片描述
改进1:
在这里插入图片描述
在这里插入图片描述
改进2:
在这里插入图片描述在这里插入图片描述

六.Path类(学校老师补充…)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

方法详解
在这里插入图片描述

p.getclass().getname();//输出现在的操作系统
打印p的话会直接打印传入的整个路径
p.getRoot–>根目录
在这里插入图片描述

七.Files工具类(在nio包下,学校老师讲的)

在这里插入图片描述

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
删除文件
*在这里插入图片描述

*遍历删除指定文件(不能直接删目录)

在这里插入图片描述

遍历删除目录(先删完文件,最后才能删目录 )

在这里插入图片描述

读取文件指定内容

在这里插入图片描述
在这里插入图片描述

八.基于Files的I/O流操作

1.从一个文件中读写字节到另一个文件

在这里插入图片描述
把流写入try语句内部可以自动关闭语句,不用再close了
but只有支持自动关闭的接口实现类才能放try里
read自动往后读
在这里插入图片描述

2.按字符读写(基于字节数组)
在这里插入图片描述
java9新特性transforto()
在这里插入图片描述

2.基于字符的读写

a.用inputstream
前提:从文件中读取的字节可以基于新方法直接转换为字符,但是不是所有的都可以转换为字符。并且要声明字符集类型(默认utf-8)
在这里插入图片描述
b。使用files方法
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值