Java中的IO(Input/Output)和文件操作主要包括以下内容:
File类:
java.io.File
类用于表示文件和目录路径。它可以用来创建、删除、重命名文件或目录,以及检查文件或目录的存在性、大小、修改时间等属性。
目录操作:
mkdir()
方法用于创建单层目录。mkdirs()
方法用于创建多层目录,如果中间的目录不存在,会一并创建。
文件操作:
createNewFile()
方法用于创建新文件。delete()
方法用于删除文件或目录。renameTo()
方法用于重命名文件或目录。exists()
方法检查文件或目录是否存在。isDirectory()
和isFile()
方法分别检查是否为目录和文件。length()
方法返回文件的长度(字节数)。lastModified()
方法返回最后一次修改文件或目录的时间戳。
IO流:
- Java IO流分为两类:字节流和字符流。
- 字节流处理8位的字节数据,如
InputStream
和OutputStream
及其子类。 - 字符流处理16位的Unicode字符数据,如
Reader
和Writer
及其子类。
文件读写:
- 读取文件通常使用
FileReader
(字符流)或BufferedReader
(带缓冲的字符流)。 - 写入文件通常使用
FileWriter
(字符流)或BufferedWriter
(带缓冲的字符流)。 - 读写字节数据可以使用
FileInputStream
和FileOutputStream
。
- 读取文件通常使用
以下是一个简单的读写文件的例子:
import java.io.*;
public class FileExample {
public static void main(String[] args) {
String content = "Hello, World!";
// Write to file
try (FileWriter writer = new FileWriter("example.txt")) {
writer.write(content);
} catch (IOException e) {
System.out.println("Error writing to file: " + e.getMessage());
}
// Read from file
try (FileReader reader = new FileReader("example.txt")) {
char[] buffer = new char[content.length()];
reader.read(buffer);
String readContent = new String(buffer);
System.out.println("Read content: " + readContent);
} catch (IOException e) {
System.out.println("Error reading from file: " + e.getMessage());
}
}
}
这个例子中,首先使用FileWriter
将字符串"Hello, World!"写入到名为"example.txt"的文件中,然后使用FileReader
从该文件中读取内容,并打印出来。
注意,Java 7及以后版本引入了NIO.2(New I/O, version 2),提供了更高效的文件操作方式,包括使用Files
类和Path
接口进行文件和目录的操作,以及使用BufferedReader
和BufferedWriter
的替代品——try-with-resources
语句来自动关闭资源,避免资源泄露。