📜  JavaFileInputStream和FileReader的区别(1)

📅  最后修改于: 2023-12-03 15:31:35.594000             🧑  作者: Mango

JavaFileInputStream和FileReader的区别

在Java中,JavaFileInputStream和FileReader都用于读取文件的内容,但它们具有以下区别。

JavaFileInputStream

JavaFileInputStream主要用于将字节流转换为输入流,读取二进制文件。它可以读取任何类型的文件,如png、pdf、mp3等。

使用方法
try {
    FileInputStream input = new FileInputStream("example.txt");
    int i=0;    
    while((i=input.read())!=-1){    
        System.out.print((char)i);    
    }    
    input.close();    
} catch(Exception e) {
    e.printStackTrace();
}
细节说明
  • JavaFileInputStream是基于字节的读取,一次读取一个字节。
  • 读取的内容是二进制数据,需要转换为字符型再进行读取。
  • 对于大型文件,JavaFileInputStream可能不太适用,因为它会占用大量的内存。
FileReader

FileReader主要用于将字符流转换为输入流,读取文本文件。它只能读取字符型文件,如txt、html等。

使用方法
try {
    FileReader reader = new FileReader("example.txt");
    int character;
    while((character = reader.read()) != -1) {
        System.out.print((char)character);
    }
    reader.close();
} catch(Exception e) {
     e.printStackTrace();
}
细节说明
  • FileReader是基于字符的读取,每次读取一个字符。
  • 读取的内容是字符串,不需要进行转换。
  • 对于大型文件,FileReader比JavaFileInputStream更加适用,因为它会更有效率地处理大部分的字符型文件。
总结
  • JavaFileInputStream是用于读取二进制文件的读取类。
  • FileReader是用于读取字符型文件的读取类。
  • JavaFileInputStream可以读取任何类型的文件。
  • FileReader仅可以读取字符型文件。
  • 当读取大型文件时,FileReader更加高效。