最新公告
  • 欢迎您光临欧资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 在Java中如何操作I/O基础File篇篇

    Java 17 I/O 基本文件文章

    I/O(输入/输出)是任何编程语言中必不可少的知识点。如何在 Java 中操作 I/O。让我们来看看。

    首先,对于Java来说,I/O相关的操作来自java.base中的java.io包。

    一般来说,系统的输入和输出是通过数据流、序列化和文件系统来提供的。

    在Java中,目前分为两个系统。Java1.7开始提供java.nio的包和子包,提供一系列全新的API。

    这些 API 是对原始 IO 的升级。因此,很多用户也称它为:NIO 2。使用这些接口可以更轻松、更高效地访问操作输入和输出。

    文件

    首先操作文件或目录,使用了一个文件目录操作类File。用于制作文件和目录路径名的抽象表示。

    不管是什么操作系统,只要有文件系统,就会有对应的路径名字符串。包含文件和目录。一般来说,关于路径的字符串由两部分组成:

    第一部分是可选的系统特定前缀字符串,例如 Windows 中的磁盘驱动器说明符,或 Unix 或 Linux 中的根目录“/”。抽象级别描述路径中的每个后续名称都可以表示为一个目录,例如将计算机名称表示为目录。通常当一个抽象的路径名被转换成对应的字符串时,每个名字(目录)和下一个名字(目录或文件)被一个默认的分隔符分隔,这个分隔符默认使用file.separator定义。File 类中提供了相应的公共静态字段separator 和separatorChar。之所以定义这个静态字段,主要是因为不同操作系统的分隔符略有不同。为了保证程序的通用性,JVM底层为我们优化了使用方法,

    对于路径,涉及两个与路径相关的概念。

    绝对路径和相对路径 注意理解这两个概念的含义。这个概念将在未来的开发中广泛使用。

    绝对路径:不受任何变化影响的路径。

    相对路径:相对于当前目录,可以找到的路径,但是级别改变会导致结果受到影响。

    比如:就我们定位而言,某省某市某县某乡镇有余某某。这个名字就像一条绝对的路径,无论放在哪里,这个俞某某都是这个村子的俞某某。但是相对路径是相对术语。比如你在某个乡镇,你可以说你在某个村子里找余某某。这样就可以找到了,但是如果去县里找某个村的余某某,就找不到了。因为没有乡镇单位。

    或者

    //绝对路径
    D:miaozijavahello.java
    javahello.java

    通常 ”。” 用于标识当前目录。我的知识体系是这样的。不知道有没有不使用“.”的操作系统。来识别当前目录。你可以在评论中告诉我。

    目录和文件会有不同的访问权限,当没有访问目录或文件的权限时会触发访问失败异常。

    文件的定义

    public class File implements Serializable, Comparable

    此类提供 4 个公共静态常量。

    该类提供了 4 个构造函数。如下图所示:

    第一种方式:

    File file1 = new File(new File("."), "File01.java");

    第二种方式:

    File file2 = new File("File01.java");

    第三种方式:

    File file3 = new File(".", "File01.java");

    第四种方式:

    File file4 = new File(new URI("file:///E:/Code/MzOpenSource/backend/javase17-tutorial/code/chapter17/file/File01java"));

    完整的demo和运行效果:

    这里直接使用System.out打印对象信息,显示的内容就是对应的路径信息。可以通过对象的 toString() 覆盖。

    这里只要引导getPath()就是获取路径。通常将抽象路径名转换为路径名字符串。

    需要注意的是,对于 File 类,仅对文件和目录的操作不会涉及内容。内容对输出流和输入流进行操作。

    对于目录和文件,最基本的操作是查看目录和文件,添加新文件或目录,修改文件名和目录名。

    当然,也会有一些判断方法来判断是否有目录和文件。

    该类的所有方法如下图所示:

    canExecute()、anRead()和canWrite()方法分别代表是否有执行权限,有没有读权限,有没有写权限。演示代码如下,看看效果是否和你想的一致。

    让我们看看如何创建文件和目录

    创建文件

    莫在莫名其妙中是意思_计算机中的目录是什么意思_tick是坐标中是什么意思

    创建文件的代码如下,创建一个Test.java文件:

    首先使用ls命令查看当前目录文件信息。然后执行创建代码。

    需要注意的是,创建必须保证创建的文件不存在,如果文件已经存在则创建失败。

    还有两种直接创建文件的静态方法。

    运行效果如下:

    输出是创建文件的目录。

    创建目录

    请注意 mkdir() 和 mkdirs() 之间的区别。mkdir 不能吹嘘创建目录。例如:如果D:/test目录存在,则D:/test/t的创建可以成功计算机中的目录是什么意思,但是如果D:/test/t/t2创建则失败。如果不知道目录中是否存在不存在的目录,可以使用 mkdirs 方法创建。

    删除文件或目录

    当一个文件被创建时,它将被销毁。毕竟,没有绝对的永恒。只是短暂的绽放。

    目录也是如此,毕竟它是为死而生的。只是如何使消除过程更有意义。

    在当前目录中创建一个 1.txt 文件。

    使用delete方法删除。或者使用相同的方法删除目录。

    File file = new File("Test");
    System.out.println(file.delete());

    如果是要删除的目录,则必须确保该目录不能包含文件或目录,而只能是一个空目录。否则,将被相应地删除。

    一个例子如下:

    运行结果:

    这里测试目录删除失败。因为在这个目录下还存放了一个文件。

    file = new File("Test/2.txt");
    System.out.println(file.delete());

    可以先删除文件,再删除Test到new File(“Test”).delete()。

    重命名文件或目录

    除了操作之外,剩下的就是一些读取目录和文件的方法,以及对应状态的方法。

    一个例子如下:

    还有与文件和目录相关的磁盘或分区查询。

    当然,既然有分区,有目录,就有目录内容查询。针对文件和目录的查询是以 list 开头的方法。

    有一个返回 File 数组的静态方法。listRoots() 列出文件系统可用的根目录。

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

    那么查询目录和文件有两种方式,一种是返回字符串,另一种是返回File数组,并且都有普通模式和过滤模式。

    我们先来看看返回字符串的方式。

    在这里,因为 FilenameFilter 是一个@FunctionalInterface 函数式接口,所以使用了一个 Lambda 表达式。当然,你也可以使用接口实现。查看list(FilenameFilter filter)的源码,看看过滤的方式。在处理它们之前获取所有目录和文件。最后,返回匹配过滤规则的对应路径。

    当然,也可以直接使用返回File数组对象的方法。用法和上面类似计算机中的目录是什么意思,只是返回值发生了变化。

    对于文件数组,提供了单独的过滤方法。代码如下,通过File对象进行处理和过滤。

    关于读写权限,下一章会演示何时读取文件内容。这篇文章有很多。但是知识点并不难。

    希望它可以帮助你。谢谢阅读。

    站内大部分资源收集于网络,若侵犯了您的合法权益,请联系我们删除!
    欧资源网 » 在Java中如何操作I/O基础File篇篇

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    欧资源网
    一个高级程序员模板开发平台

    发表评论