在Java中,文件操作是一个常见且重要的任务,主要通过java.io
包和java.nio.file
包中的类和方法来实现。下面简要介绍这两个包中用于文件操作的主要类和方法。
1. java.io 包
java.io
包是Java最早的IO库,它提供了面向流的IO操作。虽然它主要用于处理字节流和字符流,但也可以用于文件操作。
-
File 类:这是文件和目录路径名的抽象表示形式。它主要用于文件和目录的创建、查找和删除等操作,但不直接用于读写文件内容。
-
createNewFile()
:创建文件,文件不存在时返回true。 -
delete()
:删除文件或目录。 -
exists()
:检查文件或目录是否存在。 -
isDirectory()
:检查是否是目录。 -
isFile()
:检查是否是文件。 -
list()
和listFiles()
:列出目录中的文件和目录。
-
-
FileInputStream 和 FileOutputStream:用于读写文件内容的字节流。
-
read()
和write()
方法用于读写数据。
-
-
FileReader 和 FileWriter:用于读写文件内容的字符流。
-
read()
和write()
方法用于读写字符数据。
-
-
BufferedInputStream、BufferedOutputStream、BufferedReader 和 BufferedWriter:提供了带缓冲的输入输出流,提高了IO操作的效率。
2. java.nio.file 包
java.nio.file
包(从Java 7开始引入)提供了更为丰富的文件操作API,包括文件系统的访问、文件的检查、监控文件变化、文件的复制和移动等。
-
Paths 和 Path:
Paths
类包含了一些静态方法来获取Path
实例,Path
表示文件系统中的路径。-
Paths.get(String first, String... more)
:构建Path
实例。 -
Path
接口提供了大量的方法来执行文件操作,如resolve()
,relativize()
,toFile()
,normalize()
等。
-
-
Files 类:提供了用于文件操作(如读写、复制、移动、删除、查找等)的静态方法。
-
Files.exists(Path path)
:检查文件是否存在。 -
Files.createFile(Path path)
:创建文件。 -
Files.delete(Path path)
:删除文件或目录。 -
Files.copy(Path source, Path target, CopyOption... options)
:复制文件。 -
Files.move(Path source, Path target, CopyOption... options)
:移动或重命名文件。 -
Files.readAllLines(Path path, Charset cs)
:读取文件的所有行到一个列表中。 -
Files.write(Path path, List<? extends CharSequence> lines, Charset cs)
:将字符串列表写入文件。
-
-
FileSystems 类:用于访问和操作Java虚拟机中的文件系统。
总结
java.io
包提供了传统的IO操作方式,适用于简单的文件读写需求。而java.nio.file
包则提供了更为强大和灵活的文件操作API,适用于复杂的文件操作场景。在实际开发中,可以根据具体需求选择合适的包和类来进行文件操作。