Java基础——Path、File、Files

这篇具有很好参考价值的文章主要介绍了Java基础——Path、File、Files。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Path、File、Files是什么?

Path:用于操作路径
File:用于操作文件
Files:文件工具类

Path

创建Path

可使用静态Paths.get()创建相对/绝对路径,路径并不需要真实存在,若路径不合法则抛InvalidPathException

Path path = Paths.get("/storage/emulated/0/Android/data/com.demo.demo0/files/Download","data.txt");
System.out.println(path);

会默认使用当前文件系统路径分隔符连接路径(Linux是/,windows是\)

File

Files

读文件

读取文件所有内容,参数为Path

Path path = Paths.get("/storage/emulated/0/Android/data/com.demo.demo0/files/Download","data.txt");
try {
    byte[] bytes = Files.readAllBytes(path);
    System.out.println(new String(bytes));
} catch (IOException e) {
    e.printStackTrace();
}

按行读取文件内容

Path path = Paths.get("/storage/emulated/0/Android/data/com.demo.demo0/files/Download","data.txt");
try {
    List<String> list = Files.readAllLines(path);
    System.out.println(list);
} catch (IOException e) {
    e.printStackTrace();
}

写文件

写文件,参数为Path和byte[]

Path path = Paths.get("/storage/emulated/0/Android/data/com.demo.demo0/files/Download","data.txt");
try {
    Files.write(new File(path ,"0".getBytes());
} catch (IOException e) {
    e.printStackTrace();
}

如要对文件追加内容,则加入参数StandardOpenOption.APPEND

Path path = Paths.get("/storage/emulated/0/Android/data/com.demo.demo0/files/Download","data.txt");
try {
    Files.write(path, "0".getBytes(), StandardOpenOption.APPEND);
} catch (IOException e) {
    e.printStackTrace();
}

从Files提取流

InputStream inputStream = Files.newInputStream(path);
OutputStream outputStream = Files.newOutputStream(path);
BufferedReader bufferedReader = Files.newBufferedReader(path);
BufferedWriter bufferedWriter = Files.newBufferedWriter(path);

创建目录

除最后一个路径外,前边路径必须是已存在的

Path path = Paths.get("/storage/emulated/0/Android/data/com.demo.demo0/files/Download/dir");
try {
    Files.createDirectory(path);
} catch (IOException e) {
    e.printStackTrace();
}

创建文件

如果文件已经存在,则抛出异常,

Path path = Paths.get("/storage/emulated/0/Android/data/com.demo.demo0/files/Download/1.txt");
try {
    Files.createFile(path);
} catch (IOException e) {
    e.printStackTrace();
}

复制、剪切文件

复制调用copy,若要覆盖,则可添加参数StandardCopyOption.REPLACE_EXISTING,StandardCopyOption.COPY_ATTRIBUTES

Path form = Paths.get("/storage/emulated/0/Android/data/com.demo.demo0/files/Download/1.txt");
Path to = Paths.get("/storage/emulated/0/Android/data/com.demo.demo0/files/Download/dir/1.txt");
try {
    Files.copy(form, to);
} catch (IOException e) {
    e.printStackTrace();
}

剪切调用move,若要保证剪切的原子性,可添加参数StandardCopyOption.ATOMIC_MOVE

Path form = Paths.get("/storage/emulated/0/Android/data/com.demo.demo0/files/Download/1.txt");
Path to = Paths.get("/storage/emulated/0/Android/data/com.demo.demo0/files/Download/dir/1.txt");
try {
    Files.move(form, to);
} catch (IOException e) {
    e.printStackTrace();
}

删除文件

删除调用delete,若文件不存在则抛出异常,用deleteIfExists可避免异常,还可用于删除空目录

Path path = Paths.get("/storage/emulated/0/Android/data/com.demo.demo0/files/Download/dir/1.txt");
try {
    Files.delete(path);
} catch (IOException e) {
    e.printStackTrace();
}

获取文件信息

是否存在、是否隐藏、是否可读可写可执行、是否目录、是否普通文件、是否软连接

boolean exists = Files.exists(path);
boolean hidden = Files.isHidden(path);
boolean readable = Files.isReadable(path);
boolean writable = Files.isWritable(path);
boolean executable = Files.isExecutable(path);
boolean directory = Files.isDirectory(path);
boolean regularFile = Files.isRegularFile(path);
boolean symbolicLink = Files.isSymbolicLink(path);

获取大小、拥有者、创建时间等文章来源地址https://www.toymoban.com/news/detail-703432.html

long size = Files.size(path);

UserPrincipal owner = Files.getOwner(path);
String name = owner.getName();

BasicFileAttributes basicFileAttributes = Files.readAttributes(path, BasicFileAttributes.class);
FileTime fileTime = basicFileAttributes.creationTime();

到了这里,关于Java基础——Path、File、Files的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Unable to make field private final java.lang.String java.io.File.path accessible: module java.base d

    Unable to make field private final java.lang.String java.io.File.path accessible: module java.base d

    Android Studio编译报错: Unable to make field private final java.lang.String java.io.File.path accessible: module java.base does not \\\"opens java.io\\\" to unnamed module 解决方案,在gradle.properties的org.gradle.jvmargs后面增加配置: 如图:

    2024年02月11日
    浏览(39)
  • Android问题记录 - Unable to make field private final java.lang.String java.io.File.path accessible

    Android问题记录 - Unable to make field private final java.lang.String java.io.File.path accessible

    最近一个Flutter项目有新需求,开发时一直是在iOS设备上运行,花了几天做完后运行到Android设备测试,结果项目构建失败了。 Flutter: 3.7.11 Android Studio: 2022.2.1 Java: 17.0.6 Gradle: 7.4 Android Gradle Plugin (AGP): 4.1.3 项目构建报错日志: 报错有点眼熟,根据以往开发经验,应该是Gradle版本

    2024年02月04日
    浏览(7)
  • Android问题记录 - Unable to make field private final java.lang.String java.io.File.path accessible(持续更新)

    Android问题记录 - Unable to make field private final java.lang.String java.io.File.path accessible(持续更新)

    最近一个Flutter项目有新需求,开发时一直是在iOS设备上运行,花了几天做完后运行到Android设备测试,结果项目构建失败了。 Flutter: 3.7.11 Android Studio: 2022.2.1 Java: 17.0.6 Gradle: 7.4 Android Gradle Plugin (AGP): 4.1.3 项目构建报错日志: 报错有点眼熟,根据以往开发经验,应该是Gradle版本

    2024年02月13日
    浏览(12)
  • Android Studio 解决Unable to make field private final java.lang.String java.io.File.path accessible错误!

    Android Studio 解决Unable to make field private final java.lang.String java.io.File.path accessible错误!

    目录 前言 一、项目环境 二、报错信息 三、问题分析 四、解决方法         java.lang.String java.io.File.path accessible\\\"。这个错误通常会在编译或运行项目时出现,导致项目无法正常运行。         这个错误的原因是因为 Android Studio 使用了一个名为 \\\"Instant Run\\\" 的功能,该功

    2024年02月03日
    浏览(15)
  • Gradle问题解决 Unable to make field private final java.lang.String java.io.File.path accessible: module

    Gradle问题解决 Unable to make field private final java.lang.String java.io.File.path accessible: module

    下载最新的 Android Studio(2023.12) 版本如下 运行后错误如下 百度google一圈发现没有什么线索,然后咨询gpt4得结果如下: 如果您在 Android Studio 中打开一个 GitHub 上的项目并遇到了“Unable to make field private final java.lang.String java.io.File.path accessible”这样的错误信息,这通常是因为

    2024年02月04日
    浏览(37)
  • Java基础之File

    Java基础之File

    声明的File不需要是存在的,我们声明的路径可以是存在的,也可以是不存在的。因为我们只是声明,并不一定会用。 方法名 说明 File(String pathname) 通过给定的字符串路径指明一个File文件(或者文件夹) File(String parent,String child) 通过两个字符串拼接形成最终字符串路径,指明

    2023年04月18日
    浏览(8)
  • 【Java 基础】File & IO流

    【Java 基础】File & IO流

    java.io.File类是文件和目录路径名的抽象表示形式,主要用于文件和目录的创建、查找和删除等操作。 File:它是文件和目录路径名的抽象表示 文件和目录可以通过File封装成对象 File封装的对象仅仅是一个路径名。它可以是存在的,也可以是不存在的。 | 方法名 | 说明 | | —

    2024年02月05日
    浏览(11)
  • Java基础(十七)File类与IO流

    Java基础(十七)File类与IO流

    1.1 概述 File类及本章下的各种流,都定义在java.io包下。 一个File对象代表硬盘或网络中可能存在的一个文件或者文件目录(俗称文件夹),与平台无关。(体会万事万物皆对象) File 能新建、删除、重命名文件和目录,但 File 不能访问文件内容本身。如果需要访问文件内容本

    2024年02月02日
    浏览(12)
  • 【Java|基础篇】File类和IO流

    【Java|基础篇】File类和IO流

    File类是Java中用于表示文件或目录的类。它提供了一些方法来操作文件和目录的属性和内容,可以进行文件的创建、删除、重命名等操作。 File类可以用于表示磁盘上的实际文件或目录,也可以表示一个虚拟的文件或目录。File对象可以通过路径来创建,路径可以是绝对路径或

    2024年02月15日
    浏览(8)
  • java基础入门-18-【IO(异常&File&综合案例)】

    java基础入门-18-【IO(异常&File&综合案例)】

    异常 :指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。 在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理。 异常指的并不是语法错误,语法错了,编译不通过

    2024年02月07日
    浏览(11)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包