Java基础之-IO中的File类
来源:互联网 发布:手机淘宝卖家发货流程 编辑:程序博客网 时间:2024/05/17 22:14
0.File类
File类表示一个文件或者一个文件夹。所以,下文中说道的文件,请自行转换。
1.相关方法
创建File对象的方法。
- File(File parent, String child)
- File(String pathname)
- File(String child, File parent)
- File(String pathname, int prefixLength)
- File(String parent, String child)
- File(URI uri)
上面的几种方法会返回一个File对象,但是,我们所指定的文件(文件夹)不一定存在。因此 我们需要通过下面方法判断一下。
file.exists()
有些情况下,文件可能是隐藏文件,我们可以通过这样得知。
file.isHidden()
或许,你获取的是个文件夹也说不定。
file.isDirectory()
当是文件夹的时候,我们可以通过list()方法,列出他下面所有的文件名。举个例子。
File file = new File("."); String[] list ; if (file.isDirectory()){ list = file.list(); System.err.println("is dirctory"); for (String s : list) { System.err.println(s); } }else { System.out.println("is file"); System.out.println(file.getName()); }
当然,我们可以通过listFiles的方法,直接返回File对象数组。
如果是文件的话,我们还可以判断访问权限,诸如,读写、执行。
file.canRead(); file.canWrite(); file.canExecute();
当然,我们也可以通过对应的set方法去改变权限。
值得注意的是,执行指的是在linux下面。
还有一个get方法可以获得文件的绝对路径、文件大小、空闲大小、父目录等,这里就不啰嗦了。
2.创建,删除等操作
我们可以通过mkDir、mkDirs去创建文件夹。他们的区别如下。
* mkDir只能在指定目录下创建一级文件,也就是说如果是./a/b的情况,目录./a需要存在。
* mkDirs则是创建多级,如上,a不存在则先创建a,在创建b。
那么,怎么创建文件呢。createNewFile()方法就是用来创建文件的。
说了创建,那么我们就得说下删除了。删除有如下两个方法。
* deleteOnExit 如果存在,就啥un出
* delete 删除
我们在删除文件夹的时候要注意了,因为文件夹下面是有文件的,所以我们调用delete,并不会其效果,我们需要现将他下面的文件删除才行,注意了。
3.重命名
我们可以通过rename方法将文件重命名。
4.RandomAccessFile
RandomAccessFile是一种特使的File,只能是已存在的文件。
获取方法。
RandomAccessFile randomAccessFile = new RandomAccessFile("./1.txt","rw");
第一个参数表示文件路径,第二个参数表示权限,rw为读写。当只有r权限的时候,如果我们想通过write方法写入内容,就会报EOF描述符异常。
* seek 移动到文件某处
* readxxx 读方法
* writexx 写方法。
4.总结
File是io中相对基础的一个类,但是也很重要。
- Java基础之-IO中的File类
- 黑马程序员java基础之io流中的File类
- Java基础19-IO之File类
- java基础--IO流之File类
- Java基础--IO流之File类
- Java基础:IO流之File类
- java基础之IO File类和序列化Object
- 黑马程序员 Java基础IO流之File类
- java基础学习IO流之File类 十一 -1
- Java基础--------(5)IO之File
- java中的IO流之File类(一)
- Java学习笔记之IO流中的File类
- Java学习篇之IO流中的File类
- JAVA中的IO操作之File
- java io 之File类
- Java IO之File类
- java之Io-File类
- JAVA-IO之File类
- 7.20 牛客左程云第2题(个人学习笔记)
- Android版本和API Level对应关系
- Java基础之(十四)成员变量和局部变量
- 随机变量函数的分布求法和转换思想
- JS代码优化的几种方式
- Java基础之-IO中的File类
- MVC
- linux学习之cut的用法
- LeetCode | Binary Tree Level Order Traversal I,II
- Depth Estimation
- 119. Pascal's Triangle II
- 如何才能成为一名卓越的硬件工程师?
- 自定义布局好文章
- 整数中1出现的次数(从1到n整数中1出现的次数)