下面是Java使用I/O流读取文件内容的方法详解的完整攻略。
1. Java I/O流简介
Java I/O(输入/输出)流是Java提供的用于读取和写入数据的一种机制。Java I/O流可以用于文件操作、网络编程、数据库操作等多种场景。Java I/O流分为字节流和字符流两种:
- 字节流:以字节为单位进行读写操作,常用的类有
InputStream
和OutputStream
。 - 字符流:以字符为单位进行读写操作,常用的类有
Reader
和Writer
。
其中,字节流适合读写二进制数据(如图片、音视频文件等),字符流适合读写文本数据(如txt文件、数据报表等)。
2. 使用FileInputStream读取文件内容
FileInputStream
是用于读取字节流数据的流,下面给出读取文件内容的示例代码:
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class ReadFileDemo {
public static void main(String[] args) {
File file = new File("example.txt");
try (FileInputStream fis = new FileInputStream(file)) {
byte[] bytes = new byte[(int) file.length()];
fis.read(bytes);
String content = new String(bytes);
System.out.println(content);
} catch (IOException e) {
e.printStackTrace();
}
}
}
在上述示例中,我们创建了一个名为example.txt
的文件,并且在main
方法中使用FileInputStream
流读取该文件的内容。
代码中,我们首先创建了一个File
对象,传入的参数是文件的路径,然后使用FileInputStream
流读取文件的内容。由于FileInputStream
是一次只读取一个字节,我们先声明一个容量为file.length()
的字节数组,read
方法会将读取到的字节存入该数组中。最后我们将这些字节转换成字符串,并打印输出。
3. 使用BufferedReader读取文本文件内容
BufferedReader
是用于读取字符流数据的流,具有一定的缓冲作用,这样读取速度较快。下面我们来看一下使用BufferedReader
读取文本文件内容的示例代码:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class ReadTextFileDemo {
public static void main(String[] args) {
File file = new File("example.txt");
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
String line;
StringBuilder sb = new StringBuilder();
while ((line = br.readLine()) != null) {
sb.append(line);
sb.append("\n");
}
System.out.println(sb.toString());
} catch (IOException e) {
e.printStackTrace();
}
}
}
在上述示例中,我们创建了一个名为example.txt
的文本文件,并且在main
方法中使用BufferedReader
流读取该文件的内容。
代码中,我们先创建了一个File
对象,传入的参数是文件的路径。然后我们使用BufferedReader
流包装FileReader
流,readLine
方法每次读取一行数据,如果读到文件末尾会返回null
。由于文本文件中每行的结尾有可能是不同的字符(如Windows系统的换行符为CR+LF,而Unix系统的换行符为LF),为了保证输出格式的一致性,我们声明了一个StringBuilder
对象,每读取一行用\n
分隔起来。最后我们将这个字符串对象转换成字符串,并打印输出。
综上所述,以上就是Java使用I/O流读取文件内容的方法详解,当然,还有其他各种方法可以实现。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java使用I/O流读取文件内容的方法详解 - Python技术站