🌿🌿🌿跟随博主脚步,从这里开始→博主主页🌿🌿🌿
- 欢迎大家:这里是我的学习笔记、总结知识的地方,喜欢的话请三连,有问题可以私信🌳🌳🌳
您的点赞👍、关注➕、收藏⭐️、评论📝、私信📧是我最大的支持与鼓舞!!!🌻🌻🌻
java.nio.file.Files类操作
- 创建、删除目录与文件
- 文件属性操作
- 复制、移动目录与文件
- 小文件的读写
- 使用Files类创建流对象
创建、删除目录与文件
- Files类提供了下面的方法创建、删除目录和文件
static Path createDirectory(Path dir)
static Path createFile(Path file)
static void delete(Path path)
static void deleteIfExists(Path path)
- 可抛出
FileAlreadyExistsException
,NoSuchFileException
,
DirectoryNotEmptyException
异常。
文件属性操作
static boolean exists(Path path)
static boolean notExists(Path path)
static boolean isReadable(Path path)
static boolean isWritable(Path path)
static boolean isExecutable(Path path)
static boolean isRegularFile(Path path)
static long size(Path path)
static boolean isDirectory(Path path)
static boolean isHidden(Path path)
static FileTime getLastModifiedTime(Path path)
复制、移动目录与文件
- 使用Files类的
copy()
方法可以复制文件和目录。
static Path copy(Path source, Path target,
CopyOption…options)
// StandardCopyOption枚举是CopyOption接口的一个实现:
ATOMIC_MOVE
COPY_ATTRIBUTES
REPLACE_EXISTING
Path source = Paths.get("D:\\study\\demo\\report.txt"),
target = Paths.get("D:\\study\\demo\\backup.txt");
try {
Files.copy(source, target,
StandardCopyOption.REPLACE_EXISTING);
}catch (NoSuchFileException nse) {
nse.printStackTrace();
}catch (IOException ioe) {
ioe.printStackTrace();
}
- 使用Files类的
move()
方法可以移动或重命名文件或目录,格式如下:
static Path move(Path source, Path target,
CopyOption…options)
// StandardCopyOption枚举是CopyOption接口的一个实现:
ATOMIC_MOVE
COPY_ATTRIBUTES
REPLACE_EXISTING
- 以下代码将C:\temp\backup.bmp文件移到C:\data目录中。
Path source = Paths.get("C:\\temp\\backup.bmp");
Path target = Paths.get("C:\\data\\backup.bmp");
try {
Files.move(source,target,
StandardCopyOption.REPLACE_EXISTING);
}catch(IOException e){
e.printStackTrace();
}
小文件的读写
- Files类提供了对较小的二进制文件和文本文件读取和写入的方法。
static Path write(Path path, byte[] bytes,
OpenOption…options)
//StandardOpenOption枚举是OpenOption接口的一个实现:
APPEND, CREATE
CREATE_NEW, DELETE_ON_CLOSE
READ, WRITE, TRUNCATE_EXISTING
- 下面方法向文件写入若干行。
static Path write(Path path,
Iterable<extends CharSequence> lines,
Charset cs, OpenOption…options)
- 使用下面方法可以从文件读取所有字节或行:
static byte[] readAllBytes(Path path)
static List<String> readAllLines(Path path, Charset cs)
使用Files类创建流对象
- 调用Files.newInputStream()获得与文件关联的InputStream对象来读取数据。
- 调用Files.newOutputStream() 获得与文件关联的OutputStream对象向文件写数据。
- newInputStream()方法格式如下:
static InputStream newInputStream(
Path path, OpenOption…options)
throws IOException
Path path = Paths.get("src\\output.dat");
try(InputStream input = Files.newInputStream(path,
StandardOpenOption.READ)
){
// 操作input输入流对象
}catch(IOException e){
// 处理异常
}
- newOutputStream()方法格式如下:
static OutputStream newOutputStream(
Path path, OpenOption…options)
throws IOException
Path path = Paths.get("src\\output.dat");
try(OutputStream output = Files.newOutputStream(path,
StandardOpenOption.CREATE,
StandardOpenOption.APPEND);
BufferedOutputStream buffered =
new BufferedOutputStream(output) )
{
// 操作output输出流对象
}catch(IOException e){
// 处理e的异常信息 }
- 使用Files类的newBufferedReader()和newBufferedWriter()方法也可创建BufferedReader和BufferedWriter对象。
static BufferedReader newBufferedReader(Path path, Charset charset)
static BufferedWriter newBufferedWriter(Path path,
Charset charset, OpenOption…options)
博主用心写,读者点关注,互动传真情,知识不迷路。