欢迎来到我的博客小站。  交流请加我微信好友: studyjava。  也欢迎关注同名公众号:Java学习之道

能懂系列之 Java.IO.File 构造方法及主要方法详述

  |   0 评论   |   0 浏览

对文件的操作这是一项即简单又复杂的工作,阿淼本着万丈高楼平地起的调调,这篇文章就给大家梳理一下 File 对象。

一、File 对象的产生目的

程序运行时,所有处理数据都存放在内存中,程序结束并且退出,所有的数据也就跟随着程序一起从内存中消失。也就是说,程序运行和内存数据都是暂时的,非永久化的。而要解决这一问题就需要将内存中的数据存入持久化存储设备上,像硬盘,U盘等。

在java中,引入了IO操作,即写操作--Output操作;读操作--Input操作。写就是将程序中的内容输出(out)到文件中,读就是从文件中读取(in)内容到程序。

二、文件 与 File 对象

在操作系统中,文件的三大块为:文件、目录(文件夹)、路径。所有的IO操作都是在跟这三大块亲密接触。Java把文件或者目录都封装成了File对象,有了对应的File对象后就能操作文件或者目录了。

三、File 的创建以及操作

3.1 File 的构造方法

用于创建 File 实例:

// 根据parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
File(String parent, String child)
// 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
File(String pathname)
// 根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例
File(String parent, String child)

创建File实例演示:

import java.io.FIle;
    public class JavaStudyDemo {
        public static void main(String[] args) {
            /*单参数构造*/
            //通过字符串形式传递
            String filename = "D:\\JavaStudyCode\\javaStudyDemo1.txt";
            File file1 = new File(filename);
            //直接传递一个绝对路径,也是最常用的方法
            File file2 = new File("D:\\JavaStudyCode\\javaStudyDemo2.txt");

            /*双参数构造*/
            //通过两个字符串传递
            String parent = "D:\\JavaStudyCode";
            String child = "JavaStudyDemo3.txt";
            File file3 = new File(parent, child);
            //通过两个字符串直接传递
            File file4 = new File(parent, "JavaStudyDemo4.txt");
        }
    }

输出结果:

System.out.println(file1);
// D:\JavaStudyCode\javaStudyDemo1.txt
System.out.println(file2);
// D:\JavaStudyCode\javaStudyDemo2.txt
System.out.println(file3);
// D:\JavaStudyCode\javaStudyDemo3.txt
System.out.println(file4);
// D:\JavaStudyCode\javaStudyDemo4.txt

注意:可以封装不存在的文件或者目录(这也是方便后面的创建或者判定等操作)

3.2 File信息的获取方法

创建出File实例对象后,便可通过File的方法对FIle进行操作。

获取File的信息主要方法如下:

// 测试此抽象路径名表示的文件或目录是否存在。
boolean|exists()
    
// 测试此抽象路径名表示的文件是否是一个目录。
boolean|isDirectory()
    
// 测试此抽象路径名表示的文件是否是一个标准文件。
boolean|isFile()
    
// 将此抽象路径名转换为一个路径名字符串。
String|getAbsolutePath()
    
// 返回由此抽象路径名表示的文件或目录的名称。
String|getName()
    
// 返回由此抽象路径名表示的文件的长度。
long|length()

File信息的获取方法代码演示:

import java.io.File;
public class GetFileInfro {
    public static void main(String[] args) {
        //在代码运行前我已经手动创建好一个在D盘根目录下的子文件夹JavaStudyCode
        //在JavaStudyCode文件夹中创建了空文件JavaStudyDemo.txt
        File file = new File("D:\\JavaStudyCode\\JavaStudyDemo.txt");

        //判断file实例表示的文件或目录是否存在
        boolean b = file.exists();
        System.out.println(b);//true

        //判断file实例表示的对象是不是文件夹
        b = file.isDirectory();
        System.out.println(b);//false

        //判断file实例表示的对象是不是文件
        b = file.isFile();
        System.out.println(b);//true

        //获取file实例表示的对象的绝对路径
        String result = null;
        result = file.getAbsolutePath();
        System.out.println(result);
        //D:\JavaStudyCode\JavaStudyDemo.txt

        result = file.getPath();
        System.out.println(result);
        //D:\JavaStudyCode\JavaStudyDemo.txt

        result = file.getName();
        System.out.println(result);
        //JavaStudyDemo.txt

        long len = 0;
        len = file.length();
        System.out.println(len);//0
    }
}

3.3 文件及目录的创建和删除方法

我们通过对File对象信息的调用,可以知道File对象是否存在等信息,如果要对文件进行新建,删除还需要另外的方法。

// 创建此抽象路径名指定的目录。
boolean|mkdir()
	
// 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。	
boolean|mkdirs()
	
// 删除此抽象路径名表示的文件或目录。	
boolean|delete()

File创建删除文件或文件夹的代码演示:

import java.io.File;
import java.io.IOException;
public class CreateAndDelete {
	public static void main(String[] args) throws IOException {
		File file = new File("D:\\JavaStudyCode\\JavaStudyDemo.txt");
		File dir = new File("D:\\JavaStudyCode");

		if(!dir.exists())//dir对象不存在时创建一个对应的文件夹
			System.out.println(dir.mkdir());	//true

		if(!file.exists())//file对象的文件不存在时创建一个对应的文件
			System.out.println(file.createNewFile());	//true

		if(file.exists())//file对象的文件存在时进行删除操作
			System.out.println(file.delete());	//true
	}
}

此代码演示中涉及到一个createNewFile()方法,这个方法不常用,因为许多时候要操作文件时,如不存在相应文件会自动创建一个文件。

注意:

  • 1.如果要删除文件夹,文件夹必须是空文件夹,否则不能进行删除;
  • 2.delete方法删除后会自己在磁盘上消失,并不会进入到回收站,操作时一定要慎重。

标题:能懂系列之 Java.IO.File 构造方法及主要方法详述
作者:spirit223
地址:https://www.mmzsblog.cn/articles/2020/07/31/1596209271459.html

个人微信公众号 ↓↓↓                 

微信搜一搜 Java 学习之道