使用Java的IO函数进行文件读取和写入的方法是什么?
Java是一种面向对象的编程语言,为程序员提供了许多操作文件的工具。其中最常用的工具是Java IO包。Java提供了许多不同的IO类,它们用于读取和写入不同类型的数据。在这篇文章中,我们将介绍这些类的用法。
Java的IO包
Java的IO包包含两种类型的类:字节IO和字符IO。如果要处理二进制数据,比如图像,MP3文件,我们应该使用字节IO。如果要处理的是文本文件,我们应该使用字符IO类。这里我们先来介绍一下字节IO类。
字节IO类
Java提供了四个主要的字节IO类:FileInputStream、FileOutputStream、ByteArrayInputStream和ByteArrayOutputStream。这里我们只介绍前两个类。
1. FileInputStream
FileInputStream用于从文件中读取字节流。它有两种构造方法:
- FileInputStream(String fileName): 从指定路径fileName的文件创建FileInputStream对象。
- FileInputStream(File file): 从指定file对象创建FileInputStream对象。
下面是一个例子:
FileInputStream fis = new FileInputStream("test.txt");
- read()方法: 从流中读取一个字节数据,并返回它的十进制值。如果已经到达文件末尾,就返回-1。
- read(byte[] b)方法: 从流中读取bytes数组的长度字节数据,并将数据存储到bytes数组中。
- skip(long n)方法: 跳过n个字节的数据。
- available()方法: 返回流中剩余未读数据的字节数。
- close()方法: 关闭流。
下面是一个例子:
int i = fis.read();
while(i != -1) {
System.out.print((char) i);
i = fis.read();
}
2. FileOutputStream
FileOutputStream用于向文件中写入字节流。它有两种构造方法:
- FileOutputStream(String fileName): 从指定路径fileName的文件创建FileOutputStream对象。
- FileOutputStream(File file): 从指定file对象创建FileOutputStream对象。
下面是一个例子:
FileOutputStream fos = new FileOutputStream("test.txt");
- write(int b)方法: 将一个字节的数据写入流中。其中b的值是一个十进制数。
- write(byte[] b)方法: 将一个byte数组的数据写入流中。
- close()方法: 关闭流。
下面是一个例子:
String str = "Hello world!"; byte[] b = str.getBytes(); fos.write(b);
字符IO类
Java提供了两种主要的字符IO类:FileReader和FileWriter。如果我们要处理的是文本文件,我们应该使用它们。
1. FileReader
FileReader用于从文件中读取字符流。它有两个构造方法:
- FileReader(String fileName): 从指定路径fileName的文件创建FileReader对象。
- FileReader(File file): 从指定file对象创建FileReader对象。
下面是一个例子:
FileReader fr = new FileReader("test.txt");
- read()方法: 从流中读取一个字符数据,并返回它的十进制ASCII码值。如果已经到达文件末尾,就返回-1。
- read(char[] c)方法: 从流中读取c数组的长度个字符数据,并将数据存储到c数组中。
- skip(long n)方法: 跳过n个字符的数据。
- close()方法: 关闭流。
下面是一个例子:
int i = fr.read();
while(i != -1) {
System.out.print((char) i);
i = fr.read();
}
2. FileWriter
FileWriter用于向文件中写入字符流。它有两个构造方法:
- FileWriter(String fileName): 从指定路径fileName的文件创建FileWriter对象。
- FileWriter(File file): 从指定file对象创建FileWriter对象。
下面是一个例子:
FileWriter fw = new FileWriter("test.txt");
- write(String str)方法: 将一个字符串的数据写入流中。
- close()方法: 关闭流。
下面是一个例子:
String str = "Hello world!"; fw.write(str);
总结
本文介绍了Java的IO包,包括字节IO和字符IO。我们可以使用Java的IO类来读取和写入文件。更多的IO类在Java的API文档中都有描述。我们可以选择最适合自己应用的IO类,然后按照它们的使用方法来编写代码。
