有人可以帮我这个代码。 if语句没有运行但是术语是真的..(我在日志中看到它)那么这段代码有什么问题? .txt文件中有两行,因此while运行了两次。
代码:
String tag = null;
String path = "/data/data/com.barnabas.vac.ballog/files";
try {
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream(path+"/Settings.txt")));
String line = "";
Log.e(tag, "A");
while((line = (br.readLine())) != null) {
if(line.getBytes() == "RunApp: ON".getBytes())
{
RunApp.setChecked(true);
Log.e(tag, "B => " + line);
}
else if(line.getBytes() == "Battery: ON".getBytes())
{
Battery.setChecked(true);
Log.e(tag, "C => " + line);
}
Log.e(tag, line.getBytes() + " => " + "RunApp: ON".getBytes());
Log.e(tag, "D => " + line);
}
Log.e(tag, "E");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
日志:
03-26 18:55:05.405: E/(25690): A
03-26 18:55:05.405: E/(25690): [B@419d1aa8 => [B@419d1bf8
03-26 18:55:05.405: E/(25690): D => RunApp: ON
03-26 18:55:05.405: E/(25690): [B@419d1f10 => [B@419d1fe8
03-26 18:55:05.405: E/(25690): D => Battery: ON
03-26 18:55:05.405: E/(25690): E
答案 0 :(得分:0)
您正在比较byte[]
个实例,字节数组。 ==
运算符不会比较数组内容,只是看它们是否是相同的数组对象,而不是它们。
要比较数组内容,请使用Arrays.equals
:
if(Arrays.equals(line.getBytes(), "RunApp: ON".getBytes()))
您需要同样更改其他阵列比较。