我正在尝试读取某些文本文件,当我发现某些单词时,我应该执行另一个条件,
在我的代码中(将在后面),出现错误, “ 类型不匹配:无法从int转换为String ” 因此,Eclipse建议的解决方案是使变量(键)为整数而不是字符串 这是怎么了?
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class JNAL {
public static void main(String[] args) {
// TODO Auto-generated method stub
File file = new File("C:/20180918.jrn");
FileInputStream fis = null;
try {
fis = new FileInputStream(file);
System.out.println("Total file size to read (in bytes) : "
+ fis.available());
int content;
String key;
/*
while ((content = fis.read()) != -1) {
// convert to char and display it
System.out.print((char) content);
}
*/
while ((key = fis.read()) == "Cash") {
// convert to char and display it
System.out.print((String) key);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fis != null)
fis.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}
答案 0 :(得分:2)
此代码中存在多个问题,但仅是为了解决您的问题:
(key = fis.read()) == "Cash"
“现金”的类型为String
。您无法将“原始” int
与“对象” String
进行比较,因此蚀建议将原始int
更改为对象类型String
。
关键是,即使那还不够。比较对象时,请勿使用==
,而应使用equals
。
答案 1 :(得分:2)
尝试
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
public class JavaTextFileToString {
public static void main(String[] args) throws Exception {
File file = new File("C:/20180918.jrn");
BufferedReader br=new BufferedReader(new FileReader(file));
String line=null;
while((line=br.readLine())!=null){
if(line.equals("Cash")) {
System.out.println(line);
}
}
br.close();
}
}
答案 2 :(得分:0)
尝试一下:
BufferedReader bf = new BufferedReader(new InputStreamReader(fis));
while ((key = bf.readLine()).equals("Cash"))
==
运算符比较对象的引用,因此您应使用equals()
方法比较String