<JavaEE> 文件IO -- File类和文件操作

这篇具有很好参考价值的文章主要介绍了<JavaEE> 文件IO -- File类和文件操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、文件的概念

二、文件系统

三、文件类型

四、使用 File 类进行文件操作

4.1 File 类中的 pathSeparator 属性

4.2 File 类构造方法

4.3 File 类常用方法


一、文件的概念

什么是文件?

广义上的“文件”是指抽象化的操作系统中的硬件设备和软件资源,目的是对这些“文件”进行同一的管理。

狭义上的“文件(FIle)”则只是指在硬件设备中保存的数据,这些数据往往以一个一个的单位进行保存,每一个独立的单位就称为“文件”。

二、文件系统

1)什么是文件系统?

是一个“树形结构”实现的系统,用于组织管理文件。

操作系统通过“目录”对文件进行组织管理。利用目录的层次结构来描述文件所在位置,即“路径”。
由于“树形结构”的特点,每个文件都会有自己的唯一路径。通过路径,就可以找到文件。
2)绝对路径和相对路径
绝对路径

从“树形结构”的根节点开始描述,一直到叶子节点(即文件),这样的描述方式称为文件的“绝对路径”(absolute path)。在windows系统中,绝对路径从盘符开始描述。

相对路径 从指定的任意节点出发,该节点被称为“基准目录”。以该节点为基准,对文件进行描述,这样的描述方式称为“相对路径”(relative path)。想要得到相对路径,必须先明确基准目录。
3)相对路径的两个符号
. “ . ”号表示当前目录。
.. “ .. ”号表示当前目录的上一级目录。
4)表示相对路径的示例
基准目录:D:/Test/A/
相对路径(当前目录下的test1.txt文件):./test1.txt
相对路径(上级目录下,B文件夹中的test2.txt文件):../B/test2/txt

三、文件类型

有哪些文件类型?
文本文件

文本文件是指保存合法字符的文件,字符以字符串形式保存。合法字符是指被字符集编码的文本,如“UTF-8”等字符集。

二进制文件 二进制文件是指文件保存的是二进制数据。

四、使用 File 类进行文件操作

在 Java 中,文件的操作分为两类
操作文件系统

通过 File 类,在系统中进行增、删、查等操作。(下文介绍该类)

操作文件内容 通过 流对象,在文件中读取或写入内容。

4.1 File 类中的 pathSeparator 属性

pathSeparator 属性是什么?
不同的操作系统使用“/”或“\”作为目录分隔符,为使两种情况都能被成功识别,File 中使用了 pathSeparator 属性来对这两个符号做自适应。

4.2 File 类构造方法

File 类中常用的构造方法有以下三种

public File(File parent, String child)

根据父目录和子路径,创建新的 File 实例。

public File(String pathname)

根据文件路径,创建新的 File 实例。路径可以是绝对或相对路径。

public File(String parent, String child)

根据父目录和子路径,创建新的 File 实例。

4.3 File 类常用方法

File 类中有以下常用的方法

public String getParent()

返回 File 对象的父目录

public String getName()

返回 File 对象的文件名

public String getPath()

返回 File 对象的文件路径

public String getAbsolutePath()

返回 File 对象的绝对路径

public String getCanonicalPath()

返回 File 对象,修饰过的绝对路径

public boolean exists()

判断  File 对象是否真实存在

public boolean isDirectory()

判断 File 对象是否为目录

public boolean isFile()

判断 File 对象是否为文件

public boolean createNewFile()

创建新的 File 对象

public boolean delete()

删除 File 对象

public void deleteOnExit()

在进程结束后,删除 File 对象

public String[] list()

返回 File 对象目录下的所有文件名

public File[] listFiles()

返回 File 对象目录下的所有文件名

public boolean mkdirs()

创建 File 对象的目录,包括中间目录

public boolean renameTo(File dest)

修改文件名、文件路径;修改文件路径与剪切粘贴类似;

public boolean canRead()

判断是否对文件有可读权限

public boolean canWrite()

判断是否对文件有可写权限

代码演示 getAbsolutePath() 和 getCanonicalPath() :

    //文件的基准目录是"C:/Test/A"。
    public static void main(String[] args) throws IOException {
        File file = new File("./test.txt");
        System.out.println("AbsolutePath-> "+file.getAbsolutePath());
        System.out.println("CanonicalPath-> "+file.getCanonicalPath());
    }

//运行结果:
AbsolutePath-> C:\Test\A\.\test.txt
CanonicalPath-> C:\Test\A\test.txt

可以看出AbsolutePath就是父目录和相对路径的字符串连接。
而CanonicalPath则是经过了修饰处理的。

代码演示 exists()、isDirectory()、isFile() 和 createNewFile() :

    public static void main(String[] args){
        File file = new File("C:/Test/A/test.txt");
        
        System.out.println("文件是否存在:" + file.exists());
        System.out.println("这是一个目录:" + file.isDirectory());
        System.out.println("这是一个文件:" + file.isFile());

        System.out.println("创建新文件:" + file.createNewFile());
    }


//运行结果:
文件是否存在:false
这是一个目录:false
这是一个文件:true
创建新文件:true

可以看出,使用 File 构造方法时,传入的文件路径并不一定需要真实存在。
通过 exists() 可以判断文件是否真实存在。
通过 createNewFile() 可以创建出一个新文件,文件的路径与构造方法的参数相同。

代码演示 list() 和 listFiles() :

//目录"C:/Test"中,存在文件夹"A"、文件夹"B"和文件"Test.txt"。

    public static void main(String[] args){
        File f = new File("D:/Learn/E-JavaEE");

        File[] files = f.listFiles();
        for (File file : files){
            System.out.println(file.getName());
        }
    }

//运行结果:
Test.txt
A
B

list() 和 listFiles() 用法相同,只是返回值不同。
list() 返回字符串数组。
listFiles() 返回文件数组。

代码演示 renameTo() :

    public static void main6(String[] args) throws IOException {
        File src = new File("D:/Test/A/test.txt");
        File dest = new File("D:/Test/B/test1.txt");
        System.out.println("重命名:" + src.renameTo(dest)); 
    }

//运行结果:
重命名:true

可以看到,虽然方法名称为“重命名”,但是重命的可以不只是名,还可以是目录。
这就达成了剪切粘贴的效果。

阅读指针 -> 《文件IO -- 流对象操作文件内容》

<JavaEE> 文件IO -- 数据流和文件内容操作(Reader 和 Writer 、InputStream 和 OutputStream)-CSDN博客文章浏览阅读280次。介绍了数据流的概念和使用,着重介绍了字符流中的 Reader 类和 Writer 类、字节流中的 InputStream类和 OutputStream类https://blog.csdn.net/zzy734437202/article/details/134972142文章来源地址https://www.toymoban.com/news/detail-759023.html

到了这里,关于<JavaEE> 文件IO -- File类和文件操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JavaEE & 文件操作和IO & 目录扫描全文检索小程序

    不知道说啥了,看看吧 在之前的学习中,基本上都是围绕内存展开的~ MySQL 主要是操作硬盘的 文件IO也是是操作硬盘的~ IO : i nput o utput 创造文件,删除文件,重命名文件,创建目录······ 一些操作没有权限也做不了~ 1.1 路径 就是我们的文件系统上的一个文件/ 目录 的具

    2023年04月09日
    浏览(27)
  • 【JavaEE】文件操作: File 类的用法和 InputStream, OutputStream 的用法

    目录 1. File 概述 1.1 File的属性 1.2 File的构造方法 1.3 File的方法 2.读文件 2.1 InputStream 概述 2.2 FileInputStream 概述 2.3 正确打开和关闭文件的方式 2.4 不同方式读取文件代码示例 2.4 另一种方法:利用 Scanner 进行字符读取 3.写文件 3.1 OutputStream 概述 3.2 利用 OutputStreamWriter 进行字符写

    2024年01月19日
    浏览(23)
  • 【Java EE】文件操作

    目录 1.认识文件 2.树型结构组织和目录 3.文件路径(Path) 4.其他知识 5.Java中操作文件 5.1File概述 5.1.1属性 5.1.2构造方法 5.1.3方法 5.2代码示例 1.认识文件 我们先来认识狭义的文件(file)。针对1硬盘这种持久化存储的I/O设备,当我们想要进行数据保存时,往往不是保存一个整

    2024年04月22日
    浏览(41)
  • <JavaEE> 文件IO -- 数据流和文件内容操作(Reader 和 Writer 、InputStream 和 OutputStream)

    目录 一、数据流概述 二、流的关闭 2.1 使用 close() 方法 2.2 使用 try-finally 2.3 使用 try-with-resources 三、字符流的读写 3.1 Reader 类 3.2 Writer 类 四、字节流的读写 4.1 InputStream 类 4.2 OutputStream 类 1)在 Java 中,文件的操作分为两类 操作文件系统 通过 File 类,在系统中进行增、删

    2024年02月04日
    浏览(34)
  • 【Java EE 初阶】文件操作

    目录 1.什么是文件? 1.在cmd中查看指定目录的树形结构语法 2.文件路径 从当前目录开始找到目标程序(一个点) 返回到上一级目录,再找目标程序(两个点) 2.Java中文件操作 1.File概述 1.属性 2. 构造方法 3.常用方法  代码展示: 4.常用方法2 3. 文件内容的读写---数据流 1.I

    2024年02月06日
    浏览(33)
  • 学习JavaEE的日子 Day33 File类,IO流

    File是文件和目录路径名的抽象表示 File类的对象可以表示文件:C:UsersDesktophhy.txt File类的对象可以表示目录路径名:C:UsersDesktop File只关注文件本身的信息(文件名、是否可读、是否可写…),而不能操作文件里面的内容 对文件里的数据进行操作的是:IO流 需求1:通过程序

    2024年04月12日
    浏览(29)
  • 【JavaEE基础学习打卡03】Java EE 平台有哪些内容?

    📜 本系列教程适用于Java Web初学者、爱好者,小白白。我们的天赋并不高,可贵在努力,坚持不放弃。坚信量最终引发质变,厚积薄发。 🚀 文中白话居多,尽量以小白视角呈现,帮助大家快速入门。 🎅 我是 蜗牛老师 ,之前网名是 Ongoing蜗牛 ,人如其名,干啥都慢,所以

    2024年02月12日
    浏览(34)
  • 【JavaEE基础学习打卡02】是时候了解Java EE了!

    📜 本系列教程适用于 Java Web 初学者、爱好者,小白白。我们的天赋并不高,可贵在努力,坚持不放弃。坚信量最终引发质变,厚积薄发。 🚀 文中白话居多,尽量以小白视角呈现,帮助大家快速入门。 🎅 我是 蜗牛老师 ,之前网名是 Ongoing蜗牛 ,人如其名,干啥都慢,所

    2024年02月12日
    浏览(33)
  • Java eight 解读流(Stream)、文件(File)、IO和异常处理的使用方法

    java.io 包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。 Java.io 包中的流支持很多种格式,比如:基本类型、对象、本地化字符集等等。 一个流可以理解为一个数据的序列。输入流表示从一个源读取数据,输出流表示向一个目标写数据。

    2024年02月11日
    浏览(33)
  • 【文件IO操作】Java代码实现,文件与IO,文件类型,文件代码操作,文件操作案例

    前言: 大家好,我是 良辰丫 ,今天我将与大家一起学习文件操作的相关操作,跟随我的步伐,一起往下看!💞💞💞 🧑个人主页:良辰针不戳 📖所属专栏:javaEE初阶 🍎励志语句:生活也许会让我们遍体鳞伤,但最终这些伤口会成为我们一辈子的财富。 💦期待大家三连,关注,

    2023年04月18日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包