初学File类
对File类的基本方法的理解
今天刚开始学了File类 一开始看思想编程看得迷迷糊糊的,之后受不了了,直接去看API文档 归纳: File->java.util File类的主要方法:
构造方法: File(String pathname) File(String parent,String child) 顾名思义 parentchild File(File parent,String child) 顾名思义 parentchild 隐藏文件可以被获取也一定会被获取
1.创建: (1)创建文件: - createNewFile():boolean 在当前目录下创建抽象名称的文件 - createTempFile():boolean 在默认临时文件夹(在windows中为C:Users用户名AppDataLocalTemp)下创建抽象名称的文件 - createTempFile(String prefix,String suffix):boolean 相当于createTempFile(String prefix,String suffix,null); 顾名思义创建prefix.suffix 在指定目录(dif所储存的抽象路径)创建文件 (2)创建文件夹: - mkdir:boolean 创建最后一级目录(若parent目录不存在,则不创建,返回false) - mkdirs:boolean 创建多级目录
2.获取信息 (1)获取文件的属性: canxxxx:boolean (xxxx=[Execute,Read,Write]) length():long 文件夹的length为0 lastModified():long (2)获取文件路径、名称: getxxxxx:String (xxxxx=[Name,Parent,Path,AbsolutePath,CanonicalPath]) Name=pathnamechild Parent=parentnull Path=parentchild AbolutePath=绝对路径,从头到尾 CanonicalPath=绝对路径,但是会省略.. 即使实际文件不存在,也能执行这个语句
(3)获取文件 getxxxxx:File (xxxxx=[ParentFile,AbsoluteFile,CanonicalFile]) (4)获取有关数组 list():String[] list(FilenameFilter):String[] listFiles():File[] listFiles(FilenameFilter):File[] **当File对象为文件时,list返回的数组为null,因为这时对象里面没有东西,File对象不存在时,list返回的数组不为null,但是数组长度为0 **
3.判断 isxxxxx:boolean (xxxxxx=[Directory,File,Hidden,Absolute]) exists:boolean
4.操作 delete():boolean 执行语句了就删除 不管是否正在操作这个文件 deleteOnExit:void 在虚拟机退出时才删除 renameTo(File file):boolean 可用于重命名和剪切
几个陷阱: 1.将文件创建成目录,或将目录创建成文件 所以要选择好创建的方法
public static void main(String[] args)throws IOException{
File files=new File("123.txt");
//想要创建一个名为123.txt的文件
files.mkdirs();
}
得到的结果:创建了一个名为123.txt的文件夹
还有一种情况:
public static void main(String[] args)throws IOException{
File files=new File("C:\csdn","123.txt");
//想要创建C:csdn123.txt
//!files.createNewFile();
//但是不存在C:csdn这个目录 这是会抛出IOException->RunTimeException
files.mkdirs();
//这句话可以执行,不会报错,但是把123.txt当成一个目录去创建
}
这种情况我还没有想到很好的解决方案 一种思路 将父目录封装成一个对象 创建一个方法 public static File mkFile(File file,String x){code} 然后利用File的重载构造方法File(File file,String child)
2.io流对File进行操作的时候,File被删除 所以就有了deleteOnExit() 因为对File进行操作完肯定要删掉他
3.isFile()和isDirectory()都出错 当这个抽象路径不存在时,即为一个不与文件(夹)连接的对象 此时isFile()和isDirectory()均返回false
File类的优点: 判断机制: 在IO中,创建文件,不论这个文件是否存在都会创建,如果存在即被覆盖,只有会丢失数据 但是File中只有执行了获取方法才会创建对象 利用exists方法判断,有这个文件(夹)我就不建,没有这个文件(夹)我就建立 compareTo(File)和length()方法可以用于排序,实现计算机中根据名称、大小、日期等等
对File的看法: File这个类很神奇,可以把文件或文件夹封装成一个对象,即使不存在这个对象,也可以把抽象路径封装成对象(假装有这个对象) 正是因为假装有这个对象,才会与IO流的创建方法不同,不至于覆盖本来的文件
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 3分钟短文:为了你少跳坑,Laravel写好了用户授权
- 巧用ingest pipeline实现Elasticsearch索引的重定向
- leetcode之错误的集合
- vue-element怎么给select下拉框赋值?
- vue 怎么将Checkbox 多选框选中的值提交
- Chrome的小恐龙游戏自动躲避障碍物
- Three.js教程(5):光源
- Three.js教程(6):几何体
- Three.js教程(7):材质
- Keep APP技术研究
- Canvas系列(15):实战-小球拖拽
- Canvas系列(16):实战-小球与斜面碰撞
- Three.js教程(3):场景
- Three.js教程(4):相机
- 使用GithubActions自动部署应用到自己的服务器(ECS)