认识Java文件操作和IO流

文件操作(一)

文章目录

  • 文件操作(一)
    • 文件的特性
    • 路径
    • 文件分类
    • File类的使用
      • 文件的创建
      • 文件的删除
      • 文件创建加目录创建
      • 列出当前文件夹包含的文件
      • 文件重命名函数

文件的特性

我们所说的文件一般指的是硬盘文件,其实文件不止硬盘文件这一种文件,还有其他特殊文件。

说到文件就会不可避免谈到缓存速度,电脑的存储模块主要以寄存器,内存和外存(硬盘)为主,他们三者的比较

存储速度:寄存器 > 内存 >外存

空间: 外存 >内存 > 寄存器

价格:寄存器 > 内存 >外存

一般的文件操作都是针对于硬盘,也就是外存,比如说我们常用的数据库MySQL也是对硬盘的操作,还有文件IO操作也是对硬盘的操作。

路径

路径也被称为‘目录’,从上到下呈现为图/树形结构(N叉树),文件路径是由根节点出发,一路到达目标文件位置中途经过的内容。

相对路径:从某个特定的目录出发,一层一层向下找直到目标文件

绝对路径:从盘符(电脑的盘)开始,一级一级向下直到找到目标文件

使用.表示当前目录,使用..表示上一级目录。这里的路径查找文件针对于window系统。

文件分类

文本文件

  • 文本文件主要存储的是ASCII码表中的字符,或者是utf-8中的字符,或者是Unicode中的字符

二进制文件

  • 二进制文件存储的就是二进制编码,是使用二进制表示的字符,没有任何的字符集限制

如何知道一个文件是文本文件还是二进制文件呢?这里有一个小技巧给大家分享,把你想要识别的文件使用记事本打开,如果其中内容你可以识别,则是文本文件,否则就是二进制文件了。

File类的使用

使用Java代码操作文件,就会使用到Java中的File类,利用对象来操作内存中的文件,修改文件或者创建文件。

文件的创建

使用方法:

认识Java文件操作和IO流_第1张图片

可以看到一般是使用路径对文件的创建。

//在当前目录下找一个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());//返回此
 }

认识Java文件操作和IO流_第2张图片

判断文件特性,返回值(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());
    
}

认识Java文件操作和IO流_第3张图片

可以使用创建文件,然后再运行程序。

认识Java文件操作和IO流_第4张图片

文件的删除

file.delete();//直接调用delete()方法即可

使用exist()来看出文件存在与否。

认识Java文件操作和IO流_第5张图片

文件创建加目录创建

首先需要认识两个方法:

方法名 方法描述
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());
}

认识Java文件操作和IO流_第6张图片

目录删除同文件删除方法一致。

列出当前文件夹包含的文件

方法名 方法描述
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));
}

认识Java文件操作和IO流_第7张图片

认识Java文件操作和IO流_第8张图片

可以看到这里有一个2.txt并没有输出。所以这两个函数是针对于该目录下的文件,并没有对文件的文件进行输出。

文件重命名函数

renameTo():将调用的数据更改成指定的文件名

public static void main(String[] args) {
    File file = new File("aaa");
    File dest = new File("ab");
    file.renameTo(dest);
}

认识Java文件操作和IO流_第9张图片

以上就是对文件目录及文件的创建与删除操作,当然还有更多的其他操作,我所列举的都是一些比较常用的文件操作,希望小伙伴们可以熟练运用,今天的分享就到这里。

你可能感兴趣的:(java,开发语言)