还有吗
时间: 2023-10-24 13:07:46 浏览: 40
当然,还有其他读取文件的方式,比如使用BufferedReader类和InputStreamReader类来读取文本文件。具体步骤如下:
1. 创建一个FileReader对象或FileInputStream对象,该对象表示要读取的文件路径。
2. 创建一个BufferedReader对象或InputStreamReader对象,该对象用于读取文件内容。
3. 使用BufferedReader对象的相关方法,如readLine()方法,逐行读取文件内容。
下面是一个使用BufferedReader对象和FileReader对象读取文本文件的示例代码:
```java
import java.io.*;
public class ReadFile {
public static void main(String[] args) throws IOException {
FileReader fr = new FileReader("test.txt");
BufferedReader br = new BufferedReader(fr);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
}
}
```
在这个例子中,我们创建了一个FileReader对象,它表示要读取的文件路径为当前目录下的test.txt文件。然后,我们创建了一个BufferedReader对象,该对象用于读取文件内容。在while循环中,我们使用BufferedReader对象的readLine()方法逐行读取文件内容,并输出到控制台。最后,我们关闭了BufferedReader对象。
如果要读取大文件,可以使用BufferedInputStream类和ByteArrayOutputStream类。具体步骤如下:
1. 创建一个FileInputStream对象,该对象表示要读取的文件路径。
2. 创建一个BufferedInputStream对象,该对象用于缓存文件内容。
3. 创建一个ByteArrayOutputStream对象,该对象用于存储读取的文件内容。
4. 使用BufferedInputStream对象的read()方法,读取文件内容,并写入ByteArrayOutputStream对象。
下面是一个使用BufferedInputStream对象和ByteArrayOutputStream对象读取大文件的示例代码:
```java
import java.io.*;
public class ReadFile {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("test.bin");
BufferedInputStream bis = new BufferedInputStream(fis);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = bis.read(buffer)) != -1) {
baos.write(buffer, 0, len);
}
byte[] data = baos.toByteArray();
bis.close();
baos.close();
}
}
```
在这个例子中,我们创建了一个FileInputStream对象,它表示要读取的文件路径为当前目录下的test.bin文件。然后,我们创建了一个BufferedInputStream对象,该对象用于缓存文件内容。在while循环中,我们使用BufferedInputStream对象的read()方法读取文件内容,并写入ByteArrayOutputStream对象。最后,我们使用ByteArrayOutputStream对象的toByteArray()方法,将存储的文件内容转换为字节数组。最后,我们关闭了BufferedInputStream对象和ByteArrayOutputStream对象。