java中File\IO使用

本文详细介绍了Java中的File类,包括其作用、构造器和常用方法,如创建、删除文件及目录,判断文件属性以及获取文件信息等。通过实例展示了如何在Java中操作文件和目录,帮助开发者更好地理解和使用File类。
摘要由CSDN通过智能技术生成


前言

提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、File类

1File的作用

1、java.util.File类 : 文件和文件目录路径的抽象表示形式,与平台无关。其实现了 Serializable , Comparable两大接口,其对象可序列化和比较。

2、File 类能新建、删除、重命名文件和目录,但是File 不能访问文件内容本身。如果需要访问文件内容本身,需要使用 输入输出流

3、想要在java程序中表示一个真实存在的文件或目录,那么必须有一个File 对象,但是 java 程序 中的一个 File 对象,可能没有真实存在的文件或目录

4、File对象可以作为参数传递给流的构造器

由源码可知
public class File implements Serializable, Comparable<File>{

}

2、File类使用

2.1、常用构造器

  • public File (String pathname) :以pathname为路径创建File对象,可以是相对路径和绝对路径
  • public File (String parent, String child) : 以parent为路径,child为子路径创建File对象
  • public File (File parent , String child) : 根据一个父File对象路径和文件创建一个新的File对象

文件路径:pathname

pathname:通过这个路径指定唯一的一个文件(可能是一个普通文件,也可能是一个目录文件)
例:D:\Document\code , 是系统中用来描述文件位置的一种方式,通过这个路径就可以确定这个文件。

文件路径中的 \ 就是在分割不同的
在windows 和 DOS 中 默认是使用 \ (反斜杠) 作为目录的分割符,也可以使用 / (斜杠) 来进行分割,(使用 \ 进行目录层级的分割,要用双 \ ,否则会被识别为转义字符,例如 :D:\\Document\\code\\test.txt, 使用**/** 则不需要 )
在 Linux 或 MAc 中使用 / 作用类路径之间的分隔符

代码示例:

1、使用构造器 public File (String pathname)创建对象

以绝对路径的方式的方式,新建一个file对象
File file1 = new File("D:\Document\code\test.txt");

以相对路径的方式方式创建一个File 对象,在IEDA中相对的路径的路径是创建项目的根路径
File file1 = new File("test.txt");
---------------------------------------------------------------------------------------------

2、使用public File (String parent, String child) 构造器创建对象
File file = new File("D:\\Document\\code","test2.txt");

---------------------------------------------------------------------------------------------
3、使用 public File (File parent , String child) 构造器创建对象

File file = new File(new File("D:/Document/code"),"test.txt");

2.2、常用方法

2.2.1、File类的创建、删除功能
方法描述
public boolean createNewFile()创建文件。若文件存在,则不创建,返回false
public boolean mkdir()创建文件目录,如果此文件目录存在,就不创建。如果此文件的上层目录不存在也不创建
public boolean mkdirs()创建文件目录。如果上层文件目录不存在,一并创建
public boolean delete()删除文件或者文件夹 (注 : java中的删除不走回收站,要删除一个文件目录,请注意该文件目录内不能包含文件或者文件目录)

代码示例:文件的创建与删除,要求上层目录存在

D盘下创建名为test.txt的文件,如果不存在则创建文件,如果存在,则删除文件
public void test1() throws IOException {
    File file = new File("D:/Document/test.txt");
     System.out.println(file.exists());

     if (!file.exists()){
         file.createNewFile();
     }else if (file.exists()){
         file.delete();
     }
}

代码示例:创建文件目录(上层目录存在)

上层目录Document 存在,文件目录创建成功
public void test2(){
 	File file = new File("D:/Document/test2");
    boolean mkdir = file.mkdir();
    
    if (mkdir){
        System.out.println("文件目录创建成功!");
    }else{
        System.out.println("文件目录创建失败!");
    }
}

在这里插入图片描述

如果上层目录hello文件夹不存在,文件目录就会创建失败

 public void test3(){
   File file = new File("D:/hello/test");
    
    boolean mkdir = file.mkdir();

    if (mkdir){
        System.out.println("文件目录创建成功!");
    }else{
        System.out.println("文件目录创建失败!");
    }
}

在这里插入图片描述

如果上层目录不存在,也想创建文件目录,就需要使用mkdirs,文件目录创建成功!

public void test3(){
  File file = new File("D:/hello/test");

   boolean mkdir = file.mkdirs();

   if (mkdir){
       System.out.println("文件目录创建成功!");
   }else{
       System.out.println("文件目录创建失败!");
   }
}

在这里插入图片描述

2.2.2、File类的判断功能
方法描述
public boolean isDirector()判断是否是文件目录
public boolean isFile()判断是否是文件
public boolean exists ()判断是否存在
public boolean canRead()判断是否可读
public boolean canWrite()判断是否可写
public boolean isHidden()判断是否隐藏

代码示例:在上面的示例中,在D盘下面创建了一个名为test的文件,使用这个文件来进行测试

public void test4(){
    File file = new File("D:/test.txt");

    System.out.println("是否是文件目录:"+file.isDirectory());
    System.out.println("是否是文件:"+file.isFile());
    System.out.println("文件是否存在:"+file.exists());
    System.out.println("文件是否可读:"+file.canRead());
    System.out.println("文件是否可写:"+file.canWrite());
    System.out.println("文件是否隐藏:"+file.isHidden());
}

在这里插入图片描述

2.2.3、File类的获取功能
方法描述
public String getAbsolutePath()获取绝对路径
public String getPath()获取路径
public String getName()获取文件或文件夹的名称
public String getParent()获取上层目录路径。若无,返回null
public long length()获取文件长度 (字节数)。不能获取目录的长度
public long lastModified()获取最后一次的修改时间,毫秒值
public String[ ] list()获取指定目录下的所有文件或文件目录中的名称数组
public File[ ] listFiles()获取指定目录下的所有文件或者文件目录中的 File 数组

代码示例:以D:/Document/test.txt 文件为例

public void test5(){
    File file = new File("D:/Document/test.txt");

    System.out.println("getName() : 获取文件的名称 : " + file.getParent());
    System.out.println("getPath() : 获取File 对象中封装的路径 : " + file.getParent());
    System.out.println("getAbsolutePath() : 获取绝对路径 : " + file.getAbsolutePath());
    System.out.println("getAbsoluteFile() : 获取文件绝对路径 : " + file.getAbsoluteFile());
    System.out.println("getParent() : 获取当前路径的父级路径 : " + file.getParent());
    System.out.println("lastModify() : 文件最后一次修改的时间 :  " + file.lastModified());
    System.out.println("length() : 文件的长度 :  " + file.length());
}

在这里插入图片描述

方法描述
String [ ] list()以字符串的形式返回当前路径下所有的文件和文件夹的名称
File [ ] listFile()以File 对象的形式返回当前路径下的所有文件和文件夹名称
Static File [ ] listRoots()获取计算机中的所有的盘符
public void test6() {
    File file = new File("D:/Document");

    System.out.println("以字符串的形式返回当前路径下所有的文件和文件夹名称:");
    String[] fileList = file.list();
    for (String str : fileList) {
        System.out.println(str);
    }

    System.out.println("以File对象的形式获取当前路径下所有文件和文件夹名称:");
    File[] files = file.listFiles();

    for (File fil : files) {
        System.out.println(fil);
    }

    System.out.println("获取计算机中所有的盘符");
    File[] files1 = File.listRoots();
    for (File fil1 : files1){
        System.out.println(fil1);
    }
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值