无法将 FileInputStream 转换为 Reader

FileInputStream cannot be converted to Reader

我正在尝试读取我的文本文件 "inputFile.txt" 但系统显示以下错误。 谁能帮我解决这个错误?谢谢!

error: incompatible types: FileInputStream cannot be converted to Reader Yylex yy = new Yylex(fin);

    //create file object
    File infile = new
    File("C://name//test_jflex//inputFile.txt");
    int ch;
    StringBuffer strContent = new StringBuffer("");
    FileInputStream fin = null;
    try {
        fin = new FileInputStream(infile);
        Yylex yy = new Yylex(fin);
        Yytoken t;
        while ( (t = yy.yylex()) != null )
            System.out.println(t);
        fin.close();
    }

两个java.io.Reader和java.io.FileInputStream不兼容。这是因为 FileInputStream 使用字节,而 Reader 是字符流的接口。如果您转到 https://docs.oracle.com/javase/8/docs/api/java/io/FileInputStream.html,您将看到 FileInputStream 没有实现 Reader。这就是为什么您需要选择使用 Reader + 他的实现 类 或使用 FileInputStream.

FileInputStream 示例:https://www.mkyong.com/java/how-to-read-file-in-java-fileinputstream/

Reader 的一个实现示例 java.io.BufferedReader:How to use Buffered Reader in Java

P.S。请适当关闭所有流。你的 fin.close(); try部分不应该关闭!

祝你好运!