JAVA FileInputStream 和 FileReader的区别

在写检索文件的函数时,发现读取文件有两种方式,一种是FileInputStream,另一种是FileReader。它们的本质区别就是FileReader读取的是字符数据,而FileInputStream读取的是字节数据,举个简单的例子就知道了,另外下面两篇文章讲这个不错,详细可以点进去看:

java读取文件
Java FileInputStream与FileReader的区别
[Java]读取文件方法大全

package pkg;

import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;

public class ReadFile {
    public static void main(String args[]) {
 
        // 例1 – 使用FileInputStream 读取文件内容
        try (FileInputStream fis = new FileInputStream("test.log")) {
            int da = fis.read(); //读取流中的第一个字节数据
            while (da != -1) { //未到达流的末尾
                System.out.print(Integer.toHexString(da)+" ");
                da = fis.read(); //读取第二个字节数据
            }
            System.out.println();
        } catch (IOException e) {
            System.out.println("Failed to read binary data from File");
            e.printStackTrace();
        }
 
        // 例2 – Java中使用FileReader 读取文件数据
        try (FileReader reader = new FileReader("test.log")) {
            int ch = reader.read();
            while (ch != -1) {
                System.out.print((char) ch);
                ch = reader.read();
            }
        } catch (IOException io) {
            System.out.println("Failed to read character data from File");
            io.printStackTrace();
        }
    }
}

输出结果:

ef bb bf 68 65 6c 6c 6f 21 
hello!
0
你可以留言,或者trackback 从你的网站

留言哦