Java I/O 流:读写文件
简介
Java I/O 流提供了一个方便的方式来处理文件。我们可以使用流读取和写入文件。
读写文件
1. 读取文件
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class ReadFile {
public static void main(String[] args) {
try {
// 创建一个 FileInputStream 对象
FileInputStream fis = new FileInputStream(new File("file.txt"));
// 创建一个字节数组
byte[] data = new byte[1024];
// 读取文件内容到字节数组
int readBytes = fis.read(data);
// 循环遍历字节数组并打印文件内容
for (int i = 0; i < readBytes; i++) {
System.out.print((char) data[i]);
}
// 关闭文件输入流
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
2. 写入文件
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
public class WriteFile {
public static void main(String[] args) {
try {
// 创建一个 FileOutputStream 对象
FileOutputStream fos = new FileOutputStream(new File("file.txt"));
// 将字符串写入文件
String data = "This is a sample text.";
fos.write(data.getBytes());
// 关闭文件输出流
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
实战案例
从文件中读取特定行
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Scanner;
public class ReadSpecificLine {
public static void main(String[] args) {
try {
// 创建一个 FileInputStream 对象
FileInputStream fis = new FileInputStream(new File("file.txt"));
// 创建一个 Scanner 对象
Scanner scanner = new Scanner(fis);
// 输入要读取的行号
int lineNumber = 5;
// 逐行读取文件
int currentLine = 1;
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
// 如果当前行号等于要读取的行号,则打印该行
if (currentLine == lineNumber) {
System.out.println(line);
}
currentLine++;
}
// 关闭文件输入流
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}