最初のコード:
AssetManager mgr = DeviceListActivity.this.getApplicationContext().getAssets();
try {
Log.e("Glenn:", address);
FileOutputStream fout = mgr.openFd("device/device_address.txt").createOutputStream();
PrintWriter _fout = new PrintWriter(fout);
_fout.println(address);
Log.e("Glenn", address);
_fout.close();
fout.close();
InputStream fin = mgr.open("device/device_address.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fin));
address = br.readLine();
try {
Log.e("Glenn:", address);
} catch (NullPointerException e) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
Log.e("Glenn", "error with OutputStream");
}
最初の 2 つの呼び出しで出力される address の値はLog.e()
正しい値であり、実際にはデバイスの MAC アドレスです。ただし、ファイルから読み取ったアドレスの値をテストしようとすると、書き込まれたばかりで、呼び出しNullPointerException
内でキャッチされました。Log.e()
これは、ファイルから読み取られた値が であることを意味しますNULL
。コードの何が問題なのか誰でも指摘できますか?