file获取功能
list、listFiles 返回数组
练习题:
判断E盘目录下是否有后缀名为。jpg的文件,如果有,就输出此文件名称
1、先获取所有的,然后遍历,依次判断,如果满足条件就输出
2、获取的时候就已经是满足条件的,然后输出即可
接口FilenameFileter
把视频名称修改
思路分析
1、封装目录2、获取目录下File数组3、遍历该File数组(获取文件名称、找到截取起始点)4、拼接一个新的名称,然后重命名
总结:
异常
体系:Throwable error、exception RunTimeException、非RunTimeException
jvm默认处理、try..catch...finally、throws
面试题:
编译期异常和运行期异常的区别
编译期异常:必须要处理的,否则编译不通过
运行期异常:可以不处理,也可以不处理
throw和throws的区别
throw在方法体中,后面跟的是对象名,只能是一个
throws在方法声明上,后面是异常类名,可以是多个
finally关键字及其面试题
如果在catch里面有return,finally还执行吗,在return前还是后
自定义异常
继承自exception或者runtimeexception
File
构造方法
功能:
案例
递归
递归一定要有出口,否则就是死递归
递归次数不能太多,否则就内存溢出
构造方法不能递归使用
不死神兔问题:
方法 返回值类型 参数列表 出口条件 规律
练习题:请把e:\JavaSE目录下所有java结尾的文件的绝对路径给输出在控制台
封装目录、递归功能实现、获取当前目录下所有文件和文件夹的File数组、遍历数组,得到一个File对象
判断该File对象是否是文件夹、继续判断是否以。java结尾、就输出该文件的绝对路径
递归删除带内容的目录
---------------------------------------------------------------------------------------下午--------------------------------------------------------------------------------------
IO流
流向分:输出流:写出数据 输入流:读取数据
数据类型:字节流、字符流(为了方便操作文本数据)
自带记事本打开能读懂就用字符流,其他的用字节流。什么都不知道就用字节流
IO
抽象基类:字节流Input Stream、outputStream字符流reader 、writer
FileOutputStream
每种基类的子类都是以父类名作为后缀名
FileOutputStream(String name)
为什么一定要close?1、让流对象变成垃圾,就可以被垃圾回收器回收了2、通知系统去释放跟系统相关的资源
操作步骤:创建字节输出流对象、写数据、释放资源
常见问题
如何实现换行?加入换行符\n 记事本 window \r\n linux \n mac \r
如何追加写入?FileOutputStream(String,true)
字节流输出加入异常处理
读入数据
计算机中文的存储分两个字节:第一个字节肯定是负数,第二个自己常见的是负数,可能有正数,但是没有影响
一次读取一个字节数组:int read(byte[ ] b)