Read &内部メモリへの書き込み文字列を使用しています。私の"WriteFavData"は正常に動作しています。しかし、"ReadFavData"は機能していません。実際には(favFile.exists())場合、私はラインに達すると ReadFavData(.. ..)で、そのファイルが見つからないと言う&他の部分を実行します。私はすでにファイルがあるadbのシェル猫/data/data/com.android.mypackage/files/fav_data_channelを、コマンドラインシェルアクセスを使用してエミュレータ内部のメモリをチェックしています。なぜファイルが存在しないと言っているのですか?任意のアイデア....内部メモリからファイルを読み取る際の問題
public boolean ReadFavData(Context context, String channelName)
{
boolean isFileFound = false;
FileInputStream fin ;
StringBuffer strContent = new StringBuffer("");
String fileName = FAV_FILE_NAME + "_" + channelName;
File favFile = new File(fileName);
int ch;
if(favFile.exists())
{
isFileFound = true;
try {
fin = context.openFileInput(FAV_FILE_NAME + "_" + channelName);
isFileFound = true;
while ((ch = fin.read()) != -1)
{
strContent.append((char) ch);
}
fin.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else
{
Log.i(TAG, "not found");
}
return isFileFound;
}
public boolean WriteFavData(Context context, String channelName)
{
String favStr;
FileOutputStream fos ;
JSONObject videos = new JSONObject();
videos.put("videos", favJsonArray);
String favStr = videos.toJSONString(); //note.toString();
String fileName = FAV_FILE_NAME + "_" + channelName;
File f = new File(fileName);
if(f.exists())
{
Log.i("Old FIle", "Found");
f.delete();
}
if(f.exists())
Log.i("Still", "Exist");
try {
fos = context.openFileOutput(FAV_FILE_NAME + "_" + channelName, Context.MODE_PRIVATE);
fos.write(favStr.getBytes());
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return true;
}
は実際に、私はライン上(file.exists())と、その再び&トラックをデバッグし、ファイルが存在しない..しかし、私は、この行をコメント場合&は私を読みます直接ファイルを読むことができます。何が間違ってif(file.exists())?
hmmmm ..ありがとうございました。 – MicroEyes
例外キャッチで 'false;を返すことができます。 –
ok .. Thankx @Dotはすばらしい答えです。 – MicroEyes