java.io 包是 Java 标准库中用于处理输入和输出(I/O)操作的核心包。它提供了许多类和方法,用于读取和写入文件、处理流、管理目录等。以下是一些常用的 java.io 包中的类及其基本用法:
1. File 类
File 类用于表示文件和目录路径名。它不直接处理文件内容,而是提供文件或目录的元数据,如名称、路径、大小、修改时间等。
常用方法:
exists(): 检查文件或目录是否存在。
isFile(): 检查路径是否指向一个文件。
isDirectory(): 检查路径是否指向一个目录。
length(): 返回文件的长度(以字节为单位)。
getAbsolutePath(): 返回文件的绝对路径。
mkdir(): 创建目录。
delete(): 删除文件或目录。
展开剩余86%示例:
java
复制代码
import java.io.File;
public class FileExample {
public static void main(String[] args) {
File file = new File("example.txt");
if (file.exists()) {
System.out.println("文件存在: " + file.getAbsolutePath());
} else {
System.out.println("文件不存在");
}
File dir = new File("newDir");
if (!dir.exists()) {
if (dir.mkdir()) {
System.out.println("");
} else {
System.out.println("目录创建失败");
}
}
}
}
2. InputStream 和 OutputStream 类
InputStream 和 OutputStream 是处理字节流的抽象类。它们是所有字节输入流和输出流的基类。
InputStream: 用于从源读取字节。
OutputStream: 用于将字节写入目标。
常用子类:
FileInputStream 和 FileOutputStream: 用于从文件读取或写入文件。
BufferedInputStream 和 BufferedOutputStream: 提供缓冲功能,提高读写效率。
示例(使用 FileInputStream 和 FileOutputStream):
java
复制代码
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class StreamExample {
public static void main(String[] args) {
try (FileInputStream fis = new FileInputStream("input.txt");
FileOutputStream fos = new FileOutputStream("output.txt")) {
int content;
while ((content = fis.read()) != -1) {
fos.write(content);
}
System.out.println("文件复制成功");
} catch (IOException e) {
e.printStackTrace();
}
}
}
3. Reader 和 Writer 类
Reader 和 Writer 是处理字符流的抽象类。它们是所有字符输入流和输出流的基类。
Reader: 用于从源读取字符。
Writer: 用于将字符写入目标。
常用子类:
FileReader 和 FileWriter: 用于从文件读取或写入文件。
BufferedReader 和 BufferedWriter: 提供缓冲功能,提高读写效率。
示例(使用 FileReader 和 FileWriter):
java
复制代码
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class CharStreamExample {
public static void main(String[] args) {
try (FileReader fr = new FileReader("input.txt");
FileWriter fw = new FileWriter("output_char.txt")) {
int content;
while ((content = fr.read()) != -1) {
fw.write(content);
}
System.out.println("字符文件复制成功");
} catch (IOException e) {
e.printStackTrace();
}
}
}
4. 其他类
PrintWriter: 用于格式化输出,支持多种数据类型的写入。
Scanner: 用于从输入流中读取格式化数据。
Serializable 接口: 用于对象的序列化,以便保存到文件或通过网络传输。
注意事项
资源管理: 使用 try-with-resources 语句来自动关闭流,避免资源泄漏。
异常处理: I/O 操作通常会抛出 IOException,需要进行适当的异常处理。
字符编码: 在处理字符流时,注意字符编码问题,特别是在跨平台或国际化应用中。
通过这些类和方法,java.io 包提供了丰富的功能来处理各种 I/O 操作。
发布于:内蒙古自治区