文本文件:包含 ASCII 或 Unicode 字符,可用作源代码、文档或日志文件。
二进制文件:包含非文本数据,例如图像、音频或可执行代码。
文件流
文件流是连接程序和文件的数据通道。Java 提供两种主要类型的流:
字节流:处理原始字节,适用于二进制文件。
字符流:以字符为单位处理文本,适用于文本文件。
文件读写
读取文件:
FileInputStream(字节流)或 FileReader(字符流):打开文件以读取模式。
read() 或 readLine() 方法:从文件中读取字节或字符。
写入文件:
FileOutputStream(字节流)或 FileWriter(字符流):打开文件以写入模式。
write() 或 println() 方法:向文件中写入字节或字符。
文件创建和删除
File 类:表示文件或目录。
createNewFile() 方法:创建新文件。
delete() 方法:删除文件。
目录操作
File 类:还可表示目录。
list() 或 listFiles() 方法:获取目录中的文件列表。
mkdir() 方法:创建目录。
文件路径和绝对路径
文件路径:指定文件相对于当前目录的位置。
绝对路径:指定文件系统中的完整路径。
缓冲
缓冲是临时存储数据的机制,可提高文件操作的性能。
缓冲输入流:BufferedReader(字符流)或 BufferedInputStream(字节流)。
缓冲输出流:BufferedWriter(字符流)或 BufferedOutputStream(字节流)。
异常处理
文件操作可能抛出异常,例如文件未找到、权限不足或磁盘空间不足。使用 try-catch 块或 throws 声明来处理异常。
最佳实践
使用自动资源管理(ARM)或 finally 块来确保文件在操作后关闭。
在文件操作之前检查文件权限。
考虑使用缓冲来提高性能。
谨慎处理异常,并提供有用的错误消息。
扩展功能库
Java NIO 2(New I/O 2)库提供了更高级的文件操作功能,包括:
通道(Channel):提供更高效的文件访问。
文件锁(FileLock):用于同步文件访问。
文件属性(FileAttributeView):用于读取和设置文件属性。