Java Path与Files

Path和Files类封装了在用户机器上处理文件系统所需的所有功能,Path和Files是在Java SE 7 中新添加进来的类,使用时注意JDK版本。

        //在传统java.io中, 文件和目录都被抽象成File对象, 即 File file = new File(".");
        //NIO.中则引入接口Path代表与平台无关的路径,文件和目录都用Path对象表示
        //通过路径工具类Paths返回一个路径对象Path
        Path path = Paths.get("D:\\WorkFiles\\Project\\chitic-supplywater\\chitic-supplywater-common\\chitic-supplywater-common-api\\src\\main\\java\\com\\chitic\\supplywater\\common\\api\\util\\DateUtil.java");
        //一次性读取
        List<String> lines = Files.readAllLines(path, StandardCharsets.UTF_8);
        StringBuilder sb = new StringBuilder();
        for(String line : lines){
            sb.append(line);
        }
        String fromFile = sb.toString();
        System.out.println(fromFile);
     //一行一行读取文件
        Files.lines(path, StandardCharsets.UTF_8).forEach(System.err::println);
Path

Path表示的是一个目录名序列,其后还可以跟着一个文件名。
注:文件系统的分隔符(类Unix文件系统是 / ,Windows是 \ )
路径中的第一个部件可以是根部件,例如 / 或 C:\ 。以根部件开始的是绝对路径;否则就是相对路径。
方法:

static Path get(String first, String ... more)
通过连接给定的字符串创建一个路径。
Path absolute = Paths.get("/Users/lujiafeng/Desktop/SpringBoot-Learning/Java_Test/src/cc.imi"); //绝对路径
Path relative = Paths.get("src/cc.imi");  //相对路径

注:在project中,相对路径的根目录是project的根文件夹

Path getParent()
返回父路径,或者在该路径没有父路径时,返回null。
Path getFileName()
返回该路径的最后一个部件,或者在该路径没有任何部件时,返回null。
Path getRoot()
返回该路径的根部件,或者在该路径没有任何根部件时,返回null。
读写文件
static byte[] readAllBytes(Path path)
读入文件内容。
byte[] bytes = Files.readAllBytes(path);
//将文件当做字符串读入,可添加如下代码:
String content = new String(bytes, charset);
static List<String> readAllLines(Path path, Charset charset)
将文件当做行序列读入。
List<String> lines = Files.readAllLines(path, charset);
static Path write(Path path, byte[] contents, OpenOption...options)
写出一个字符串到文件中。
Files.write(path, content.getBytes(charset));
向指定文件中追加内容:

Files.write(path, content.getBytes(charset), StandardOpenOption.APPEND);
static Path write(Path path, Iterable<? extends CharSequence> contents, OpenOption options)
将一个行的集合写出到文件中:
Files.write(path, lines);

注:以上方法适用于处理中等长度的文本文件,如果要处理的文件长度比较大,或者是二进制文件,那么还是应该使用流或者杜读入器 / 写出器。

复制、移动、删除文件
static Path copy(Path from, Path to, CopyOption... options)
将文件从一个位置复制到另一个位置,并返回to。
Files.copy(fromPath, toPath);
static Path move(Path from, Path to, CopyOption... options)
将文件从一个位置移动到另一个位置,并返回to。如果目标路径已经存在,那么复制或移动将失败。
Files.move(fromPath, toPath);
static void delete(Path path)
删除给定文件或空目录,在文件或目录不存在的情况下抛出异常。
static boolean deleteIfExists(Path path)
删除给定文件或空目录。在文件或目录不存在的情况下返回false。
创建文件和目录
创建新目录:
Files.createDirectory(path);
创建一个空文件
Files.createFile(path);
获取文件信息
  • static boolean exists(Path path)
  • static boolean isHidden(Path path)
  • static boolean isReadable(Path path)
  • static boolean isWriter(Path path)
  • static boolean isExecutable(Path path)

https://blog.csdn.net/oMaoYanEr/article/details/80961130

原文地址:https://www.cnblogs.com/gaomanito/p/11642918.html

时间: 2024-11-05 09:16:54

Java Path与Files的相关文章

Java文件IO操作应该抛弃File拥抱Path和Files

Java7中文件IO发生了很大的变化,专门引入了很多新的类: import java.nio.file.DirectoryStream;import java.nio.file.FileSystem;import java.nio.file.FileSystems;import java.nio.file.Files;import java.nio.file.Path;import java.nio.file.Paths;import java.nio.file.attribute.FileAt

什么是java path环境变量

参考:https://docs.oracle.com/javase/tutorial/essential/environment/paths.html 从orcle官网的文档中可以看到java path环境变量: java path环境变量就是java在执行命令时 寻找javac这个程序的位置(拓展开来其它应用应该也是这样,资源的环境变量就是某个应用对自己所需要用的资源,所在的位置){一个是程序所在的位置,一个是资源所在的位置}. The PATH environment variable is

工程属性中没有java path build

添加一个maven管理的工程后,需要配置jdk,但是右键工程的属性后,没有出现java path build. 网上查了一下,总结方法如下:找到工程下的.project文件,打开,添加红色框图中的内容. 最后,成功呈现. 原文地址:https://www.cnblogs.com/kevin-lee123/p/9250500.html

Java Zip/Unzip Files 记录

最近项目中使用Java实现zip/unzip XML文件的功能,Java自带的API可以方便实现文件的压缩和解压缩,记录一下相关代码. 以源文件名zip压缩源文件到目标文件 public void zip(File src, File dest){ InputStream in = null; ZipOutputStream zos= null; try { zos = new ZipOutputStream(new FileOutputStream(dest)); ZipEntry ze= n

[Leetcode][JAVA] Path Sum I &amp;&amp; II

Path Sum Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum. For example:Given the below binary tree and sum = 22, 5 / 4 8 / / 11 13 4 / \ 7 2 1 return t

[LeetCode][Java] Path Sum II

题目: Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given sum. For example: Given the below binary tree and sum = 22, 5 / 4 8 / / 11 13 4 / \ / 7 2 5 1 return [ [5,4,11,2], [5,8,4,5] ] 题意: 给定一棵二叉树和一个和,找出从根节

[LeetCode][Java] Path Sum

题目: Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum. For example: Given the below binary tree and sum = 22, 5 / 4 8 / / 11 13 4 / \ 7 2 1 return true,

浅谈Java中path、classpath环境变量的配置问题

一. 编译和运行Java程序必须经过两个步骤: 1.将源文件编译成字节码: 2.解释执行平台无关的字节码程序. 二.问题 以上两个步骤分别需要使用javac和java两个命令(javac命令对java源文件进行编译生成class文件,java命令对生成的class文件进行运行),如果我们直接在cmd命令行窗口里依次输入javac和java命令,可能会看到以下错误: 另外当我们移动了class文件后,执行java命令时,会出现以下错误: 三.分析问题 我们已经在计算机里安装了JDK,而jdk的安装

Path,Files巩固,题目:从键盘接收两个文件夹路径,把其中一个文件夹中(包含内容)拷贝到另一个文件夹中

这个题目用传统的File,InputStream可以做,但是如果用Files,Path类做,虽然思路上会困难一些,但是代码简洁了很多,以下是代码: import java.io.IOException; import java.nio.file.FileVisitResult; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.Simple