您的位置:首页 > 编程语言 > Java开发

java.nio --Path--Files--基本使用

2017-06-30 22:34 281 查看

Java NIO(New IO或 Non Blocking IO)是从java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。NIO支持面向缓冲区的、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。

接下来几天我将努力学习,并分享nio包学习成果

以下是nio包 interface Path的基本使用

Path对象对应的是io包中的File对象

package com.xiaoqiang;

import static org.junit.Assert.*;

import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.nio.file.DirectoryStream;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

import org.junit.Test;

public class PathUser {
@Test
public void test1() throws Exception {
// Path用于来表示文件路径和文件
// 常见的创建 Path对象
Path path1 = Paths.get("./", "src/", "photo");
Path path2 = Paths.get("./src/photo");
// path 1 和 path 2 表示相同
Path path3 = Paths.get(new URI("file:///G:/pic"));
Path path4 = FileSystems.getDefault().getPath("./src/photo");
File file = path4.toFile();
Path path5 = file.toPath();
}

/**
* 等同File的操作
*
* @throws Exception
*/
@Test
public void test2() throws Exception {
/**
* ...为JDK1.5新特性 可变参数
*/

// static FileTime getLastModifiedTime(Path path, LinkOption... options)
// 返回文件的上次修改时间。
// static UserPrincipal getOwner(Path path, LinkOption... options)
// 返回文件的所有者。
// static Set<PosixFilePermission> getPosixFilePermissions(Path path,
// LinkOption... options)
// 返回文件的POSIX文件权限。
// static boolean isDirectory(Path path, LinkOption... options)
// 测试文件是否是目录。
// static boolean isExecutable(Path path)
// 测试文件是否可执行。
// static boolean isHidden(Path path)
// 告知文件是否被 隐藏 。
// static boolean isReadable(Path path)
// 测试文件是否可读。
// static boolean isRegularFile(Path path, LinkOption... options)
// 测试文件是否是具有不透明内容的常规文件。
// static boolean isSameFile(Path path, Path path2)
// 测试两个路径是否找到相同的文件。
// static boolean isSymbolicLink(Path path)
// 测试文件是否是符号链接。
// static boolean isWritable(Path path)
// 测试文件是否可写。
}

/**
* 文件 创建 移动 重命名 复制 删除等
*
* @throws Exception
*/
@Test
public void test3() throws Exception {
//      static Path copy(Path source, Path target, CopyOption... options)
//      将文件复制到目标文件。
//      static Path createDirectories(Path dir, FileAttribute<?>... attrs)
//      首先创建所有不存在的父目录来创建目录。
//      static Path createDirectory(Path dir, FileAttribute<?>... attrs)
//      创建一个新的目录。
//      static Path createFile(Path path, FileAttribute<?>... attrs)
//      创建一个新的和空的文件,如果该文件已存在失败。
//      static Path createLink(Path link, Path existing)
//      为现有文件创建新的链接(目录条目) (可选操作)
//      static void delete(Path path)
//      删除文件。
//      static boolean deleteIfExists(Path path)
//      删除文件(如果存在)。
//      static boolean exists(Path path, LinkOption... options)
//      测试文件是否存在。
//      static Path move(Path source, Path target, CopyOption... options)
//      将文件移动或重命名为目标文件。
}

@Test
public void test4() throws Exception {
// 遍历文件
// JDK 1.7 try-with-resources

Path path = Paths.get("./src/photo");
try (DirectoryStream<Path> stream = Files.newDirectoryStream(path)) {
for (Path p : stream) {
System.out.println(p);
}
// stream.forEach(e -> System.out.println(e));
// forEach 为java1.8新特性 Lam
4000
bda表达式
} catch (IOException e) {
e.printStackTrace();
}
}

}


JAVA 8 Lambda表达式使用-> click me

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  path api java nio files