File、Files、Path、Paths
一、Path、Paths 和 File、Files
// Paths 工具类,用于获取 Path 实例
Path path = Paths.get("files/Data.txt"); // 相对路径
Path path2 = Paths.get("D:\\files/Data.txt"); // 绝对路径
Path path3 = Paths.get("D:/files/Data.txt"); // 绝对路径
Path path4 = Paths.get("D:/files", "Data.txt"); // 绝对路径
System.out.println(path); // 打印结果:files\Data.txt
System.out.println(path2); // 打印结果:D:\files\Data.txt
System.out.println(path3); // 打印结果:D:\files\Data.txt
System.out.println(path4); // 打印结果:D:\files\Data.txt
// 路径正常化
Path path5 = Paths.get("D:/files/../files2/file2.txt"); // 绝对路径
System.out.println(path5); // 打印结果:D:\files\..\files2\file2.txt
System.out.println(path5.normalize()); // 打印结果:D:\files2\file2.txt // Flies
boolean exists = Files.exists(path5); // 判断文件是否存在,存在返回true,反之返回false
System.out.println(exists); // false
try {
/*
创建一级目录
如果存在,则抛出异常:FileAlreadyExistsException
无法创建多级目录,如果目录不存在,则会抛出异常:NoSuchFileException
*/
Files.createDirectory(path5);
// 创建多级目录
Files.createDirectories(path5);
// copy 文件,如果文件存在则会抛出异常:FileAlreadyExistsException
Files.copy(path, path5);
// 如果希望覆盖掉已存在的文件,需要使用 StandardCopyOption.REPLACE_EXISTING
Files.copy(path, path5, StandardCopyOption.REPLACE_EXISTING);
// 移动文件,StandardCopyOption.ATOMIC_MOVE 保证移动文件的原子性
Files.move(path, path5, StandardCopyOption.ATOMIC_MOVE);
/*
1. 删除文件,如果文件不存在,则会抛出异常:NoSuchFileException
2. 删除目录,如果目录不存在,则会抛出异常:DirectoryNotEmptyException
*/
Files.delete(path2);
} catch (IOException e) {
e.printStackTrace();
}
二、文件遍历

File、Files、Path、Paths的更多相关文章
- 合并多行查询数据到一行:使用自连接、FOR XML PATH('')、STUFF或REPLACE函数 (转)
转自: http://www.cnblogs.com/aolin/archive/2011/04/12/2014122.html 示例表 tb 数据如下 id value—————1 aa1 bb2 ...
- Sql Server合并多行询数据到一行:使用自连接、FOR XML PATH('')、STUFF或REPLACE函数
示例表 tb 数据如下 id value ----- 1 aa 1 bb 2 aaa 2 bbb 2 ccc SELECT id, [val] = ( SELECT [value] + ',' FRO ...
- Go template高级用法、深入详解、手册、指南、剖析
入门示例 以下为test.html文件的内容,里面使用了一个template语法{{.}}. <!DOCTYPE html> <html> <head> <m ...
- Java的Path、Paths和Files
前言 因为这几天被java.nio的这几个接口和工具类卡到了,就顺便地查了一波文档以及使用方法,这篇其实更像是API的复制粘贴,只不过我在注释里多写了一些output和注意事项,看不惯API的可以选择 ...
- Java基础教程——File类、Paths类、Files类
File类 File类在java.io包中.io代表input和output,输入和输出. 代表与平台无关的文件和目录. 可以新建.删除.重命名,但不能访问文件内容. File类里的常量: impor ...
- Java NIO学习系列七:Path、Files、AsynchronousFileChannel
相对于标准Java IO中通过File来指向文件和目录,Java NIO中提供了更丰富的类来支持对文件和目录的操作,不仅仅支持更多操作,还支持诸如异步读写等特性,本文我们就来学习一些Java NIO提 ...
- NIO前奏之Path、Files、AsynchronousFileChannel
NIO前奏之Path.Files.AsynchronousFileChannel Java 1.4加入了nio包,Java 1.7 加入了真正的AIO(异步IO),AsynchronousFile ...
- C#文件与流(FileStream、StreamWriter 、StreamReader 、File、FileInfo、Directory、directoryInfo、Path、Encoding)
(FileStream.StreamWriter .StreamReader .File.FileInfo.Directory.DirectoryInfo.Path.Encoding) C#文 ...
- 6.NIO2-Path、Paths、Files
NIO.2 jdk1.7中,java对 NIO 极大的扩展,主要增强的是对文件处理 和 文件系统特性的支持 关于其中一些API的使用 public class TestNIO_2_Path_File ...
- 10缓冲流、转换流、序列化流、Files
十.流 10.1 缓冲流 10.1.1 概述 缓冲流是对4个基本的FileXxx流的增强,所以也是4个流,按照数据类型进行分类 ...
随机推荐
- 【个人笔记】CentOS 修改 SSH 端口, 禁止 ROOT 远程登陆
1. 修改 SSH 端口号, 禁止 ROOT 用户远程登录 # 使用ROOT用户或者其他有权限的用户登录 # 首先新建一个普通用户,避免禁用 ROOT 用户远程登陆后自己也无法登陆, 已有用户可以跳过 ...
- js 数字千元符号分割
/* * 参数说明:* number:要格式化的数字* decimals:保留几位小数 * dec_point:小数点符号* thousands_sep:千分位符号* */export functio ...
- 3、k8s 核心实战
7 kubernets核心实战 7.1 资源创建方式 命令行 yaml 7.2 namespace 名称空间来隔离资源 命令行方式 kubectl create ns hello kubectl de ...
- redis的安装详细教程
redis官方下载地址是:https://redis.io/download, redis 64位下载地址是:https://github.com/ServiceStack/redis-windows ...
- 如何进行多平台部署Client和Server详细讲解
一:signalR把console用做客户端访问服务端方法 1:新建一个控制台应用程序(ClientConsole) 2:用nuget安装SignalR.Client(必须,下面是nuget命令) I ...
- .Net最小工作线程对应用程序性能的影响
这要从Asp.Net建立连接的机制说起,Asp.Net建立连接依赖于.Net线程池,线程池的大小决定了应用程序最多可以同时执行的请求数量.maxWorkerThreads最大工作线程,决定单个处理器最 ...
- JUC续
设计模式,保护性暂停.解耦 生产者消费者模式 park.unpark 线程状态转换 锁超时 锁超时可以解决哲学家就餐问题 公平锁 条件变量 线程控制顺序
- GNN学习(一):基础知识
1 # !usr/bin/env python 2 # -*- coding:utf-8 _*- 3 # @Time :2022/8/20 10:46 4 # @Author: VVZ 5 # @Fi ...
- [转]C#中的自定义事件和EventHandler的使用
自定义事件: 这里主要模拟刷银行卡,手机提示刷卡信息的过程. 声明一个委托类型 public delegate void DelMethod(string bankName,decimal d ...
- maven jar包新版本检测工具推荐
为什么需要 经常使用maven来构建项目的朋友,应该遇到过类似这样的情况:项目通过maven引入了很多jar包,随着时间推移,这些jar包都有了更优的新版本出来,想升级,但又觉得很繁琐.主要是因为两方 ...