File类笔记

本文详细介绍了Java中的File类,包括其用于创建、删除文件和目录的方法,以及如何处理文件路径。讨论了相对路径和绝对路径的概念,并展示了如何使用File对象进行文件和目录的常见操作,如创建、删除、判断文件存在、获取文件大小等。同时,提到了RandomAccessFile类用于文件内容的读写操作。
摘要由CSDN通过智能技术生成

File

定义

  • 是java.io包中唯一与文件有关的类,可以使用File类创建、删除等常见的文件操作,但不能操作文件中的数据

  • File类一抽象的方式代表文件名和目录路径名

  • File对象代表磁盘中实际存在的文件与目录(文件夹)

  • File类实现了SerializableComparable<File>,说明它是支持序列化和排序的。

文件路径

相对路径

  • 文件在硬盘上真正存在的路径

  • 超链接文件位置也属于绝对路径

绝对路径

  • 自己相对与目标位置的路径

    • “./” 代表当前目录

    • “../” 代表上一级目录,父级路径

    • “/” 当前根目录,是相对目录

对象创建

构造方法

  • 通过给定的父抽象路径名和子路径名字符串创建一个新的File实例

File file = new File(File parent, String child);
  • 通过将给定路径名字符串转换成抽象路径名来创建一个新 File 实例。

File file = new File(String pathname) 
  • 根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。

File file = new File(String parent, String child) 
  • 通过将给定的 file: URI 转换成一个抽象路径名来创建一个新的 File 实例。

File file = new File(URI uri) 

注意

  • File类在实例化时一定要设置好路径

  • 在使用File类指定路径的时候一定要注意操作系统间的差异,尽量使用separator进行分割

File myFile = new File("C:" + File.separator + "tmp" + File.separator, "test.txt");

File类有几个类似separator的静态字段,都是与系统相关的,在编程时应尽量使用

1public static final String pathSeparator常量表示路径的分隔符(windows是“;”)
2public static final String separator常量表示路径的分隔符(windows是“\”)

常用方法

1public File(String pathname)构造创建File类对象,传入完整路径
2public boolean createNewFile()throws IOException普通创建新文件
3public boolean delete()普通删除文件
4public boolean exists()普通判断文件是否存在
5public boolean isDirectory()普通判断给定的路径是否在一个目录
6public long length()普通返回文件的大小
7public String[] list()普通列出指定目录的全部内容,只是名称
8public File[] listFiles()普通列出指定目录的全部内容,会有路径
9Public Boolean mkdir()普通创建一个目录
10Public Boolean renameTo(File dest)普通为已有的文件重命名

实例操作

创建一个新文件

//为增加可移植性,建议使用File.separator
File file = new File("d:"+File.separator+"text.txt");
try {
	file.createNewFile();
} catch (IOException e) {
	e.printStackTrace();
}

删除一个指定文件

 File file = new File("d:"+File.separator+"text.txt");
        if (file.exists()){
            try {
                file.delete();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

综合创建,删除文件的操作

File file = new File("d:"+File.separator+"text.txt");
        if (file.exists()){
            try {
                file.delete();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }else {
            try {
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

创建一个文件夹

File file = new File("d:"+File.separator+"test");
        if (file.exists()){
            try {
                file.mkdir();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

列出指定目录的全部文件

使用list()列出全部内容

File file = new File("d:"+File.separator+"test");
        String[] array = file.list();
        for (String s : array) {
            System.out.println(s);
        }

使用listFiles()列出

File file = new File("d:"+File.separator+"test");
        File[] array = file.listFiles();
        for (File s : array) {
            System.out.println(s);
        }

判断一个给定的路径是否目录

 File file = new File("d:"+File.separator+"test");
        if (file.isDirectory()){
            System.out.println(file.getPath()+"是目录");
        }else{
            System.out.println(file.getPath()+"不是目录");
        }

列出指定目录的全部内容

File file = new File("d:" + File.separator + "test");
        if (file != null) {
            if (file.isDirectory()) {
                File[] files = file.listFiles();
                if (files != null) {
                    for (File f : files) {
                        System.out.println(f);
                    }
                }
            } else {
                System.out.println(file);
            }
        }

RandomAccessFile类

概述

  • 相对文件内容进行操作

  • 可以随机的读取一个文件中指定位置的数据

构造函数

public RandomAccessFile(File file,String mode)throws FileNotFoundException
  • 实例化此类的时候需要传递File类。告诉程序应该操作的是哪个文件,之后有个模式,文件的打开模式,常用的两种模式:

    • r:读

    • w:写

    • rw:读写,如果使用此模式,如果文件不存在,则会自动创建

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值