Java标准库中IO操作,如文件读写详解
Java标准库中的IO(输入/输出)操作是处理数据流的基础,它允许程序与外部世界进行交互,比如从文件中读取数据或向文件中写入数据。Java的IO操作主要分为两个部分:java.io
包和java.nio
包(Java New IO,从Java1.4开始引入)。下面我将详细介绍java.io
包中的文件读写操作。
1.基本的文件读写####读取文件- FileReader:用于读取字符文件的便捷类。
- BufferedReader:提供缓冲的字符输入流,可以提高读取效率。
示例代码:
```javaimport java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadFile {
public static void main(String[] args) {
String path = “example.txt”;
try (BufferedReader reader = new BufferedReader(new FileReader(path))) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```####写入文件- FileWriter:用于写入字符文件的便捷类。
- BufferedWriter:提供缓冲的字符输出流,可以提高写入效率。
示例代码:
```javaimport java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class WriteFile {
public static void main(String[] args) {
String path = “example.txt”;
String content = “Hello, World!”;
try (BufferedWriter writer = new BufferedWriter(new FileWriter(path))) {
writer.write(content);
} catch (IOException e) {
e.printStackTrace();
}
}
}``###2. 使用
RandomAccessFile进行随机访问
RandomAccessFile`类允许对文件进行随机访问,可以读取或写入文件的任意位置。
示例代码:
```javaimport java.io.RandomAccessFile;
import java.io.IOException;
public class RandomAccessFileExample {
public static void main(String[] args) {
String path = “example.txt”;
try (RandomAccessFile file = new RandomAccessFile(path, “rw”)) {
file.seek(0); //移动到文件开头 file.writeBytes(“Hello, World!”); //写入内容 file.seek(0); //再次移动到文件开头 System.out.println(file.readLine()); //读取内容} catch (IOException e) {
e.printStackTrace();
}
}
}``###3. 使用
FileInputStream和
FileOutputStream`进行二进制读写- FileInputStream:用于读取文件的二进制数据。
- FileOutputStream:用于写入文件的二进制数据。
示例代码:
```javaimport java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class BinaryFileExample {
public static void main(String[] args) {
String inputPath = “input.bin”;
String outputPath = “output.bin”;
try (FileInputStream fis = new FileInputStream(inputPath);
FileOutputStream fos = new FileOutputStream(outputPath)) {
int byteData;
while ((byteData = fis.read()) != -1) {
fos.write(byteData);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}``###4. 使用
java.nio包进行更高级的文件操作
java.nio包提供了更高级的文件IO操作,包括文件锁定、内存映射文件等特性。这个包中的类通常以
Channel、
Buffer和
Selector`结尾。
- Files:提供了一些静态方法来简化文件操作,如复制、移动、检查文件是否存在等。
- Path:表示文件路径,用于
java.nio
包中的IO操作。 - Paths:提供静态方法来创建
Path
对象。
示例代码:
```javaimport java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.io.IOException;
import java.nio.file.StandardOpenOption;
public class NIOFileExample {
public static void main(String[] args) {
Path path = Paths.get(“example.txt”);
try {
String content = “Hello, NIO!”;
Files.write(path, content.getBytes(), StandardOpenOption.CREATE);
System.out.println(new String(Files.readAllBytes(path)));
} catch (IOException e) {
e.printStackTrace();
}
}
}
```这些是Java标准库中进行文件读写操作的基本方法。根据你的具体需求,你可以选择适合的类和方法来实现文件的读写。
还没有评论,来说两句吧...