无法将 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部分不应该关闭!
祝你好运!
我正在尝试读取我的文本文件 "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部分不应该关闭!
祝你好运!