使用Java的IO函数读写文件的详细教程
Java提供了完善的IO函数,可以方便地读写文件。
在Java中,文件读写主要涉及到两个包:java.io和java.nio。其中,java.io是之前使用较为广泛的IO处理方式,而java.nio则是Java 1.4之后引入的新的IO处理方式,具有更高的性能。
本文将主要介绍java.io包的文件读写操作。
1. 读取文件
使用Java读取文件需要用到FileInputStream类和BufferedInputStream类。
FileInputStream类会打开指定的文件,将文件的内容读取到缓冲器中,并存储到指定的数据结构中。读取文件的步骤如下:
- 创建一个FileInputStream对象并将要读取的文件路径传递给该对象。
- 创建一个byte数组用于存储文件内容。
- 使用FileInputStream的read方法读取文件内容并将其存储在byte数组中。
- 关闭FileInputStream对象。
代码示例:
public static void readFile(String filePath) {
try {
FileInputStream fis = new FileInputStream(filePath); // 步
byte[] data = new byte[1024]; //第二步
fis.read(data); //第三步
fis.close(); //第四步
System.out.println(new String(data));
} catch (IOException e) {
e.printStackTrace();
}
}
但是上述代码仅能读取文件前1024个字节的内容,对于大于1024的文件应该如何读取呢?
这时候就需要使用BufferedInputStream类。BufferedInputStream类会从文件中读取数据块并将其存储在内存缓冲区中,直到缓冲区满或读取完所有数据块为止。
代码示例:
public static void readFile(String filePath) {
try {
FileInputStream fis = new FileInputStream(filePath);
BufferedInputStream bis = new BufferedInputStream(fis);
byte[] data = new byte[1024];
int len;
while ((len = bis.read(data)) != -1) {
System.out.println(new String(data, 0, len));
}
bis.close();
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
2. 写入文件
使用Java写入文件需要用到FileOutputStream类和BufferedOutputStream类。
FileOutputStream类会打开指定的文件并将写入的数据存储在缓冲区中,然后将缓冲区中的数据写入到文件中。写入文件的步骤如下:
- 创建一个FileOutputStream对象并将要写入的文件路径传递给该对象。
- 创建一个byte数组用于存储写入的数据。
- 使用FileOutputStream的write方法将要写入的数据存储在缓冲区中。
- 关闭FileOutputStream对象。
代码示例:
public static void writeFile(String filePath, String content) {
try {
FileOutputStream fos = new FileOutputStream(filePath); // 步
byte[] data = content.getBytes(); //第二步
fos.write(data); //第三步
fos.close(); //第四步
} catch (IOException e) {
e.printStackTrace();
}
}
如果需要写入的数据量较大,可以使用BufferedOutputStream类。
BufferedOutputStream类会在内存中创建缓冲区,将写入的数据先存储在缓冲区中,等到缓冲区达到一定的容量或者通过调用flush()方法时,将缓冲区中的数据写入到文件中。
代码示例:
public static void writeFile(String filePath, String content) {
try {
FileOutputStream fos = new FileOutputStream(filePath);
BufferedOutputStream bos = new BufferedOutputStream(fos);
byte[] data = content.getBytes();
bos.write(data);
bos.flush(); //调用flush()方法将缓冲区中的数据写入文件
bos.close();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
以上就是使用Java的IO函数读写文件的详细教程。通过学习本文,您已经了解了如何读取和写入文件,并掌握了如何使用Java中的IO函数来进行文件处理。
