day008-File文件
1、 File
文件和目录路径名的抽象表示形式。
一个File类对象就代表了一个文件或文件夹。


1.1 File类的作用
用来操作硬盘上的文件或文件夹
绝对路径:一般是以盘符开始的,比如:C:/Java/aaa.png。特点:在系统中具有唯一性。
相对路径:相对于某个位置而言,比如:java/bbb.png。特点:在系统中不具有唯一性
在java中,默认的相对位置是当前项目的根目录
1.2 File 类常用构造方法
public File(String pathname) //根据文件名创建文件
public File(String parent,String child) //根据父路径字符串和子路径字符串创建文件对象
public File(File parent,String child) // 从父抽象路径名和子路径名字符串创建新的 File实例。
1.3 路径分隔符、名称分隔符
1.3.1 路径分隔符
public static final String pathSeparator //与系统相关的路径分隔符字符
不同的操作系统有不同的路径分隔符:
Mac和Linux是 :
Windows是 ;
1.3.2 名称分隔符
public static final String separator //与系统相关的名称分隔符字符
Mac和Linux是 /
Windows是 \
JDK 1.5后,Windows用\来表示路径分隔符都可以
1.4跟获取相关方法
public String getAbsolutePath() 获得绝对路径
public String getPath() 获得创建文件对象的指定的文件路径名字符串
public String getName() 获取文件名
public long length() 获取文件的大小,单位为字节。如果关联路径的文件不存在,返回为零。只能获得文件的大小,不能获取文件夹的值。
获取文件夹的的返回值就是一个垃圾值。
public File getParentFile() 获得父路径文件对象
1.5跟判断相关方法
public boolean exists() 判断文件是否存在
public boolean isDirectory() 判断文件是否是目录
public boolean isFile() 判断文件是否是普通文件
1.6跟创建和删除相关方法
public boolean createNewFile() //创建文件,创建成功返回true,如果创建成功,返回true。如果文件存在,则什么也不发生,返回false
public boolean mkdir() //创建单级文件夹。创建成功返回true,创建失败返回false。如果文件夹存在,则什么也不发生,返回false。只能用在文件夹
public boolean delete() //删除文件和文件夹,如果是文件夹,只能删除空文件夹
public boolean mkdirs() //创建多级文件夹. 创建成功返回true,创建失败返回false。如果文件夹存在,则什么也不发生,返回false。只能用在文件夹
1.7遍历目录相关
public String[] list() 返回一个字符串数组,表示该File目录中的所有子文件或目录
public File[] listFiles() 获取文件夹下的所有文件(子文件夹和普通文件),返回文件对象数组
2. 递归

2.1什么是递归?方法自身调用方法自身。
例子:递归求阶乘
- 阶乘:所有小于及等于该数的正整数的积。
- n的阶乘:n! = n * (n-1) * (n-2) * ... * 3 * 2 * 1

递归分类:
直接递归:方法A调用方法A
间接递归:方法A调用方法B,方法B调用方法C,方法C调用方法A
2.2递归的注意事项:
递归必须要有出口:结束递归的条件
3. Filter文件过滤器
FileFilter是一个接口,只要是实现了该接口的实现类对象就是一个文件过滤器。
3. 1 File类与文件过滤器相关的方法
public File[] listFiles(FileFilter filter)
accept方法的调用时机:
每当获取到文件夹下的每一个文件或子文件夹时,都会将该文件或文件夹封装成File对象,然后将该File 对象作为参数调用文件过滤器的access方法。
Access方法返回值的作用;
返回false,代表传递过来的文件需要过滤掉
返回true,代表接受文件
4. 补充知识点
Scanner类的next方法和nexLine方法的不同点比较:
a)next/nextInt/nextDouble
扫描结束的标记是回车、tab键、空格
在扫描到第一个有效字符之前会自动过滤掉结束标记符:回车、tab键、空格
不会过滤掉扫描结束的回车
b)nextLine
扫描结束标记标记是回车,会过滤扫描结束的回车符
day008-File文件的更多相关文章
- FILE文件流的中fopen、fread、fseek、fclose的使用
FILE文件流用于对文件的快速操作,主要的操作函数有fopen.fseek.fread.fclose,在对文件结构比较清楚时使用这几个函数会比较快捷的得到文件中具体位置的数据,提取对我们有用的信息,满 ...
- File文件的使用
线程的停止: 1.停止一个线程一般是通过一个变量来控制 2.如果需要停止一个处于一个等待状态的线程,那么需要配合interrupture方法来完成 守护线程:(后台线程):在一个进程中只剩下守护线程, ...
- Python学习(16)File(文件)方法
Python File(文件) 方法 file 对象使用 open 函数来创建,下表列出了 file 对象常用的函数: 序号 方法及描述 1 file.close() 关闭文件.关闭后文件不能再进行读 ...
- android内核读取file文件
内核读取file文件的方法: char* file_read(const char * file_path) { struct file *file = NULL; //保存打开文件的文件指针变量 s ...
- Java文件操作二:File文件的方法
一.文件的判断方法 判断方法 .boolean canExecute()判断文件是否可执行 .boolean canRead()判断文件是否可读 .boolean canWrite() 判断文件是否可 ...
- Java file文件的写入和读取及下载
File文件的写入 一.FileWriter 和BufferedWriter 结合写入文件 FileWriter是字符流写入字符到文件.默认情况下,它会使用新的内容代替文件原有的所有内容,但是,当指定 ...
- js 实现 input type="file" 文件上传示例代码
在开发中,文件上传必不可少但是它长得又丑.浏览的字样不能换,一般会让其隐藏点其他的标签(图片等)来时实现选择文件上传功能 在开发中,文件上传必不可少,<input type="file ...
- file和file文件流
**io流是程序中比较常用的功能,基本上涉及到文件上传下载的都要用到这功能,比如上传头像,上传附件等等. 对于一个java程序员来说,io流也是必须掌握的,因此这里对比较常用的或者说曾经用过的方法进行 ...
- js获取input file文件二进制码
<html> <body> <img id="image"src=""/> <br/> <input ty ...
- js 图片base64转file文件的两种方式
js 图片base64转file文件的两种方式 https://blog.csdn.net/yin13037173186/article/details/83302628 //将base64转换为bl ...
随机推荐
- 关于:“无法序列化会话状态。在“StateServer”或“SQLServer”模式下,...的问题
关于:“无法序列化会话状态.在“StateServer”或“SQLServer”模式下,...的问题 错误描述: 无法序列化会话状态.在“StateServer”或“SQLServer”模式下,ASP ...
- Olesya and Rodion (思维)
Olesya loves numbers consisting of n digits, and Rodion only likes numbers that are divisible by t. ...
- C# 关于Grid下动态删除行列的操作
假设我们有以下布局 <Grid x:Name="Grid" ShowGridLines="True"> <Grid.RowDefinition ...
- 在Eclipse中调试web项目
由于现在的公司用的是Eclipse开发web项目而且不安装MyEclipse插件,没有myclipse插件就不能在Eclipse中配置web服务器,所以也就不好对web项目进行调试.下面的方法就可以让 ...
- Python 读取Excel数据 xlrd
#导入相关模块 from xlrd import open_workbook #打开excel file = open_workbook("test.xlsx") #获取sheet ...
- CentOS 6.2出现Disk sda contains BIOS RAID metadata解决方法
今天在安装CentOS 6.2的时候,当进到检测硬盘的时候,总是过不去,报错如下: Disk sda contains BIOS RAID metadata, but is not part of a ...
- Spring 和整个体系 @Value注解 配合属性文件.property
未来学习方向 重要思路 学的时候看官方文档,系统地学,比如学Spring Boot ,但真正使用的时候,有比自动化(条件化)配置,约定即配置 更好的方法(这个可读性不强,对电脑来说它执行的代码一样 ...
- oracle 备份恢复篇(五)---rman 剩下控制文件和spfile
一,环境准备 ❤ 拥有全量备份文件
- DotNetCore跨平台~xUnit和测试报告
在进入dotnet core时代之后,测试驱动开发TDD的主要工具不再是微软的nunit,取而代之的是更通用的xunit,微软把它集成到了dotnetcore的项目里,在安装完成vs2017之后,你可 ...
- SpringSecurity 3.2入门(10)自定义权限控制认证及授权的过程
上一章的代码实现还存在一些问题,如角色表.权限表的用处没有体现出来,但是已经能完成URL拦截功能,后面将会继续完善认证及授权的过程. 认证及授权的过程如下: 1.容器启动,MyInvocationSe ...