在 Java 里,你可以借助文件流来进行文件的读取与写入操作。文件流主要分为字节流和字符流。字节流以字节为单位处理数据,适用于处理二进制文件,像图片、音频等;字符流以字符为单位处理数据,适合处理文本文件。
读取文件
1. 使用字节流读取文件
你可以使用 FileInputStream
来读取文件的字节数据。以下是一个示例代码:
import java.io.FileInputStream;
import java.io.IOException;
public class ReadFileUsingByteStream {
public static void main(String[] args) {
try (FileInputStream fis = new FileInputStream("test.txt")) {
int data;
while ((data = fis.read()) != -1) {
System.out.print((char) data);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
2. 使用字符流读取文件
使用 FileReader
读取文本文件内容,代码如下:
import java.io.FileReader;
import java.io.IOException;
public class ReadFileUsingCharacterStream {
public static void main(String[] args) {
try (FileReader fr = new FileReader("test.txt")) {
int data;
while ((data = fr.read()) != -1) {
System.out.print((char) data);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
写入文件
1. 使用字节流写入文件
使用 FileOutputStream
往文件中写入字节数据,示例如下:
import java.io.FileOutputStream;
import java.io.IOException;
public class WriteFileUsingByteStream {
public static void main(String[] args) {
try (FileOutputStream fos = new FileOutputStream("test.txt")) {
String content = "Hello, World!";
byte[] bytes = content.getBytes();
fos.write(bytes);
} catch (IOException e) {
e.printStackTrace();
}
}
}
2. 使用字符流写入文件
使用 FileWriter
向文本文件写入内容,代码如下:
import java.io.FileWriter;
import java.io.IOException;
public class WriteFileUsingCharacterStream {
public static void main(String[] args) {
try (FileWriter fw = new FileWriter("test.txt")) {
String content = "Hello, World!";
fw.write(content);
} catch (IOException e) {
e.printStackTrace();
}
}
}
常见的文件操作方法
- 文件读取方法
read()
:从输入流读取一个字节或字符,返回读取的字节或字符的 ASCII 码值,到达文件末尾返回 -1。read(byte[] b)
或read(char[] cbuf)
:从输入流读取一定数量的字节或字符到数组中,返回实际读取的字节或字符数。read(byte[] b, int off, int len)
或read(char[] cbuf, int off, int len)
:从输入流读取最多len
个字节或字符到数组中,从off
位置开始存储,返回实际读取的字节或字符数。
- 文件写入方法
write(int b)
或write(int c)
:向输出流写入一个字节或字符。write(byte[] b)
或write(char[] cbuf)
:将字节数组或字符数组中的内容写入输出流。write(byte[] b, int off, int len)
或write(char[] cbuf, int off, int len)
:将字节数组或字符数组中从off
位置开始的len
个字节或字符写入输出流。write(String str)
:将字符串写入输出流(仅字符流有此方法)。
- 文件关闭方法
close()
:关闭流并释放相关资源。在 Java 7 及以后版本,建议使用try-with-resources
语句来自动关闭流,避免资源泄漏。
这些操作方法能满足大多数文件读取和写入的需求。在实际应用中,你可以根据文件类型和需求选择合适的流和方法。