java.io.file和java.nio.file

目录

1、IO和NIO

2、IO处理文件

3、NIO处理文件

3.1、Paths常用方法

3.2、Path常用方法

3.3、Files常用方法


1、IO和NIO

IO

        流式IO,面向流,只能一个字节一个字节地处理数据,无法前后移动流中的数据,数据不会被缓存在任何地方。

        阻塞IO,当一个线程进行读或写操作时时,该线程被阻塞,直到读取或写入操作完全结束。

NIO

        面向缓冲,以Block(块/缓冲区)的方式来读取数据,需要时可在缓冲区中前后移动。

        非阻塞IO,使用通道进行数据传输,数据读取或写入都是异步的,不会阻塞线程。

2、IO处理文件

        使用File类来访问文件系统,通过字节流(InputStream,OutputStream)或字符流(Reader,Writer)进行数据传输。常用方法如下所示:

boolean	createNewFile()
    当且仅当具有该名称的文件尚不存在时,原子地创建一个由该抽象路径名命名的新的空文件。
static File	createTempFile(String prefix, String suffix)
    在默认临时文件目录中创建一个空文件,使用给定的前缀和后缀生成其名称。
static File	createTempFile(String prefix, String suffix, File directory)
    在指定的目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。
boolean	delete()
    删除由此抽象路径名表示的文件或目录。
void deleteOnExit()
    请求在虚拟机终止时删除由此抽象路径名表示的文件或目录。
boolean	exists()
    测试此抽象路径名表示的文件或目录是否存在。
File getAbsoluteFile()
    返回此抽象路径名的绝对形式。
String	getAbsolutePath()
    返回此抽象路径名的绝对路径名字符串。
File getCanonicalFile()
    返回此抽象路径名的规范形式。
String	getCanonicalPath()
    返回此抽象路径名的规范路径名字符串。
String	getName()
    返回由此抽象路径名表示的文件或目录的名称。
String	getParent()
    返回此抽象路径名的父 null的路径名字符串,如果此路径名未命名为父目录,则返回null。
File	getParentFile()
    返回此抽象路径名的父,或抽象路径名 null如果此路径名没有指定父目录。
String	getPath()
    将此抽象路径名转换为路径名字符串。
boolean	isDirectory()
    测试此抽象路径名表示的文件是否为目录。
boolean	isFile()
    测试此抽象路径名表示的文件是否为普通文件。
long	lastModified()
    返回此抽象路径名表示的文件上次修改的时间。
String[]	list()
    返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。
File[]	listFiles()
    返回一个抽象路径名数组,表示由该抽象路径名表示的目录中的文件。
boolean	mkdir()
    创建由此抽象路径名命名的目录。
boolean	mkdirs()
    创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录。
boolean	renameTo(File dest)
    重命名由此抽象路径名表示的文件。
Path	toPath()
    返回从此抽象路径构造的java.nio.file.Path对象。
String	toString()
    返回此抽象路径名的路径名字符串。
URI	toURI()
    构造一个表示此抽象路径名的 file: URI。

3、NIO处理文件

        Java NIO是在Java1.4引入的一套新的IO API,与传统IO相比,功能相同,但NIO是面向缓冲区的、基于通道的非阻塞IO操作,读写文件更高效。

        在Java7以后,NIO增强了对文件处理和文件系统特性的支持。引入了Path接口,代表一个平台无关的平台路径,描述了目录结构中文件的位置。同时,java.nio.file包还提供了Files、Paths工具类,Files包含 了大量静态的工具方法来操作文件;Paths则包含了两个返回Path的静态工厂方法。

3.1、Paths常用方法

static Path	get(String first, String... more)
    将路径字符串或连接到路径字符串的字符串序列转换为 Path 。
static Path	get(URI uri)
    将给定的URI转换为Path对象。

3.2、Path常用方法

        一个 Path 对象表示一个文件或者目录的路径,是一个跨操作系统和文件系统的抽象,目的是在构造路径时可以不必关注底层操作系统。如果 Path 仅由一个空的名称元素组成,则认为是空的路径。使用空路径访问文件等同于访问文件系统的默认目录。Path 接口的实现是不可变且安全的,可供多个并行线程使用。

boolean	endsWith(Path other)
    测试此路径是否以给定的路径结束。
boolean	endsWith(String other)
    测试此路径是否以 Path结束,通过转换给定的路径字符串,完全按照 endsWith(Path)方法指定的方式构建。
Path	getFileName()
    将此路径表示的文件或目录的名称返回为 Path对象。
FileSystem	getFileSystem()
    返回创建此对象的文件系统。
Path	getName(int index)
    返回指定索引位置 index 的Path
int	getNameCount()
    返回路径中的元素的数量。
Path	getParent()
    返回 父路径 ,或 null如果此路径没有父。
Path	getRoot()
    返回当前Path对象的根路径
Path	resolve(Path other)
    合并两个路径,返回合并后的路径对应的Path对象
boolean	startsWith(Path other)
    测试此路径是否以给定的路径开始。
boolean	startsWith(String other)
    测试此路径是否以 Path ,通过转换给定的路径字符串,按照 startsWith(Path)方法指定的方式构建。
Path	toAbsolutePath()
    返回表示此路径的绝对路径的 Path对象。
File	toFile()
    返回表示此路径的File对象。
Path	toRealPath(LinkOption... options)
    返回现有文件的 真实路径。
String	toString()
    返回此路径的字符串表示形式。
URI	toUri()
    返回一个URI来表示此路径。

3.3、Files常用方法

static long	copy(InputStream in, Path target, CopyOption... options)
    将输入流中的所有字节复制到文件。
static long	copy(Path source, OutputStream out)
    将文件中的所有字节复制到输出流。
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	createTempDirectory(Path dir, String prefix, FileAttribute<?>... attrs)
    在指定的目录中创建一个新目录,使用给定的前缀生成其名称。
static Path	createTempDirectory(String prefix, FileAttribute<?>... attrs)
    在默认临时文件目录中创建一个新目录,使用给定的前缀生成其名称。
static Path	createTempFile(Path dir, String prefix, String suffix, FileAttribute<?>... attrs)
    在指定的目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。
static Path	createTempFile(String prefix, String suffix, FileAttribute<?>... attrs)
    在默认临时文件目录中创建一个空文件,使用给定的前缀和后缀生成其名称。
static void	delete(Path path)
    删除文件。
static boolean	deleteIfExists(Path path)
    删除文件(如果存在)。
static boolean	exists(Path path, LinkOption... options)
    测试文件是否存在。
static UserPrincipal	getOwner(Path path, LinkOption... options)
    返回文件的所有者。
static boolean	isDirectory(Path path, LinkOption... options)
    测试文件是否是目录。
static boolean	isExecutable(Path path)
    测试文件是否可执行。
static boolean	isHidden(Path path)
    告知文件是否被 隐藏 。
static boolean	isReadable(Path path)
    测试文件是否可读。
static boolean	isSameFile(Path path, Path path2)
    测试两个路径是否找到相同的文件。
static boolean	isWritable(Path path)
    测试文件是否可写。
static Stream<String>	lines(Path path)
    从 Stream读取文件中的所有行。
static Stream<String>	lines(Path path, Charset cs)
    从文件中读取所有行作为 Stream 。
static Stream<Path>	list(Path dir)
    返回一个懒惰的填充 Stream ,其元素是 Stream中的条目。
static Path	move(Path source, Path target, CopyOption... options)
    将文件移动或重命名为目标文件。
static boolean	notExists(Path path, LinkOption... options)
    测试此路径所在的文件是否不存在。
static byte[]	readAllBytes(Path path)
    读取文件中的所有字节。
static List<String>	readAllLines(Path path)
    从文件中读取所有行。
static List<String>	readAllLines(Path path, Charset cs)
    从文件中读取所有行。
static long	size(Path path)
    返回文件的大小(以字节为单位)。
static Path	write(Path path, byte[] bytes, OpenOption... options)
    将字节写入文件。
static Path	write(Path path, Iterable<? extends CharSequence> lines, Charset cs, OpenOption... options)
    将文本行写入文件。
static Path	write(Path path, Iterable<? extends CharSequence> lines, OpenOption... options)
    将文本行写入文件。
static BufferedReader	newBufferedReader(Path path)
    打开一个文件进行阅读,返回一个 BufferedReader以高效的方式从文件读取文本。
static BufferedReader	newBufferedReader(Path path, Charset cs)
    打开一个文件进行阅读,返回一个 BufferedReader ,可以用来以有效的方式从文件读取文本。
static BufferedWriter	newBufferedWriter(Path path, Charset cs, OpenOption... options)
    打开或创建一个写入文件,返回一个 BufferedWriter ,可以用来以有效的方式将文本写入文件。
static BufferedWriter	newBufferedWriter(Path path, OpenOption... options)
    打开或创建一个写入文件,返回一个 BufferedWriter以高效的方式写入文件。
static SeekableByteChannel	newByteChannel(Path path, OpenOption... options)
    打开或创建文件,返回可访问的字节通道以访问该文件。
static SeekableByteChannel	newByteChannel(Path path, Set<? extends OpenOption> options, FileAttribute<?>... attrs)
    打开或创建文件,返回可访问的字节通道以访问该文件。
static DirectoryStream<Path>	newDirectoryStream(Path dir)
    打开一个目录,返回一个DirectoryStream以遍历目录中的所有条目。
static DirectoryStream<Path>	newDirectoryStream(Path dir, DirectoryStream.Filter<? super Path> filter)
    打开一个目录,返回一个DirectoryStream来迭代目录中的条目。
static DirectoryStream<Path>	newDirectoryStream(Path dir, String glob)
    打开一个目录,返回一个DirectoryStream来迭代目录中的条目。
static InputStream	newInputStream(Path path, OpenOption... options)
    打开一个文件,返回输入流以从文件中读取。
static OutputStream	newOutputStream(Path path, OpenOption... options)
    打开或创建文件,返回可用于向文件写入字节的输出流。

以上内容为个人学习理解,如有问题,欢迎在评论区指出。

部分内容截取自网络,如有侵权,联系作者删除。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值