나는이 조각을했습니다 :이상한 NullPointerException이 오류
Log.d("iBank", "Helper: " + helper.toString());
Log.d("iBank", "File: " + file.toString());
if(helper.read(file).equals(""))
{
dataDir = Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_DOWNLOADS);
}
else
{
dataDir = new File(helper.read(file));
}
내 문제는 항상 if(helper.read(file).equals(""))
에 NullPointerException이 발생한다. 위의 코드에서 볼 수 있듯이 Log.d()를 두 객체 모두에서 수행했지만 예외를 throw하지는 않았습니다. 처음에 나는 helper.read()
에 뭔가 잘못되었지만. 당신은 아래를 참조하지만, 난 이미 가능한 오류를 잡을 수있다 :
public String read(File file)
{
if(file == null)
return "";
String data = "";
if(!file.exists())
{
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
try {
FileReader fr = new FileReader(file);
BufferedReader bfr = new BufferedReader(fr);
data = bfr.readLine();
} catch (Exception e) {
e.printStackTrace();
}
return data;
}
내 코드 뭐가 잘못 됐는지 모르겠어요. 어쩌면 나는 뭔가를 놓친다. 그러나 나는 그것을 이해할 수 없다.
UPDATE
내가 return (data == null) ? "" : data;
당신 말이 맞습니다. 데이터가 비어 있기 때문입니다. – ariefbayu