FileInputStream 無法轉換為 Reader



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

错误:不兼容的类型:文件输入流无法转换为读取器 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:如何在 Java 中使用 Buffered Reader

附言请适当关闭所有流。你的鳍关闭((;不应该在尝试部分关闭!

祝你好运!

最新更新