文件操作(一)
文章目录
- 文件操作(一)
- 文件的特性
- 路径
- 文件分类
- File类的使用
- 文件的创建
- 文件的删除
- 文件创建加目录创建
- 列出当前文件夹包含的文件
- 文件重命名函数
文件的特性
我们所说的文件一般指的是硬盘文件,其实文件不止硬盘文件这一种文件,还有其他特殊文件。
说到文件就会不可避免谈到缓存速度,电脑的存储模块主要以寄存器,内存和外存(硬盘)为主,他们三者的比较
存储速度:寄存器 > 内存 >外存
空间: 外存 >内存 > 寄存器
价格:寄存器 > 内存 >外存
一般的文件操作都是针对于硬盘,也就是外存,比如说我们常用的数据库MySQL也是对硬盘的操作,还有文件IO操作也是对硬盘的操作。
路径
路径也被称为‘目录’,从上到下呈现为图/树形结构(N叉树),文件路径是由根节点出发,一路到达目标文件位置中途经过的内容。
相对路径:从某个特定的目录出发,一层一层向下找直到目标文件
绝对路径:从盘符(电脑的盘)开始,一级一级向下直到找到目标文件
使用.
表示当前目录,使用..
表示上一级目录。这里的路径查找文件针对于window系统。
文件分类
文本文件
- 文本文件主要存储的是ASCII码表中的字符,或者是utf-8中的字符,或者是Unicode中的字符
二进制文件
- 二进制文件存储的就是二进制编码,是使用二进制表示的字符,没有任何的字符集限制
如何知道一个文件是文本文件还是二进制文件呢?这里有一个小技巧给大家分享,把你想要识别的文件使用记事本打开,如果其中内容你可以识别,则是文本文件,否则就是二进制文件了。
File类的使用
使用Java代码操作文件,就会使用到Java中的File类,利用对象来操作内存中的文件,修改文件或者创建文件。
文件的创建
使用方法:
可以看到一般是使用路径对文件的创建。
//在当前目录下找一个hello.txt的文件,这个文件可以存在也可以不存在
File f = new File("\\hello.txt");
//当且仅当具有该名称的文件尚不存在时,原子地创建一个由该抽象路径名命名的新的空文件。
f.createNewFile();
可以发现该类使用了IO的包。I/O -->input/output,也就是执行输入输出操作的包。
来认识几个File获取路径的方法:
方法名 | 返回值 | 方法描述 |
---|---|---|
getParent() | String | 获取上级目录 |
getName() | String | 获取文件名 |
getPath() | String | 获取路径名 |
getAbsolutePath() | String | 获取绝对路径名 |
getCanonicalPath() | String | 获取规范路径名 |
public static void main(String[] args) throws IOException {
File f = new File("\\hello.txt");
System.out.println(f.getParent());//获取上级目录
System.out.println(f.getName());//获取文件名
System.out.println(f.getPath());//将此抽象路径名转换为路径名字符串
System.out.println(f.getAbsolutePath());//返回此抽象路径名的绝对路径名字符串。
System.out.println(f.getCanonicalPath());//返回此
}
判断文件特性,返回值(Boolean):
方法名 | 方法描述 |
---|---|
exists() | 判断路径名表示的文件或目录是否存在 |
isDirectory() | 判断当前输入的是否为目录 |
isFile() | 判断是否是普通文件 |
public static void main(String[] args) throws IOException {
//表示相对路径
File file = new File("hello_world.txt");
//file.createNewFile();
//创建文件,会根据文件目录来进行创建
System.out.println(file.exists());
System.out.println(file.isDirectory());
System.out.println(file.isFile());
}
可以使用创建文件,然后再运行程序。
文件的删除
file.delete();//直接调用delete()方法即可
使用exist()
来看出文件存在与否。
文件创建加目录创建
首先需要认识两个方法:
方法名 | 方法描述 |
---|---|
mkdir() | 创建以该抽象路径命名的目录 |
mkdirs() | 创建以该抽象路径,名命名的目录,包括任何必需但不存在的父目录。 |
使用效果:
public static void main(String[] args) {
//创建单层目录
File file1 = new File("a");
file1.mkdir();
System.out.println(file1.exists());
//创建多级目录
File file = new File("aaa/bbb");
file.mkdirs();
System.out.println(file.exists());
}
目录删除同文件删除方法一致。
列出当前文件夹包含的文件
方法名 | 方法描述 |
---|---|
list()返回一个字符串数组 | 命名由此抽象路径名表示的目录中的文件和目录 |
istFiles()返回一个抽象路径名数组 | 表示由该抽象路径名表示的目录中的文件 |
public static void main(String[] args) {
File file = new File("aaa");
//下一级的所有文件
String[] strings = file.list();
System.out.println(Arrays.toString(strings));
//下一级的所有文件加该目录
File[] files = file.listFiles();
System.out.println(Arrays.toString(files));
}
可以看到这里有一个2.txt并没有输出。所以这两个函数是针对于该目录下的文件,并没有对文件的文件进行输出。
文件重命名函数
renameTo():将调用的数据更改成指定的文件名
public static void main(String[] args) {
File file = new File("aaa");
File dest = new File("ab");
file.renameTo(dest);
}
以上就是对文件目录及文件的创建与删除操作,当然还有更多的其他操作,我所列举的都是一些比较常用的文件操作,希望小伙伴们可以熟练运用,今天的分享就到这里。