Я пытаюсь записать объект (pilotRecord) в файл и снова прочитать его. Я понял, что мне не нужно указывать путь, поскольку он является внутренним для моего приложения, поэтому я хочу, чтобы все файлы были удалены, если приложение было удалено.
Здесь мой код:
fileoutputstream = openFileOutput("test1", Context.MODE_WORLD_WRITEABLE);
Log.d(this.getClass().getName(), "loadPilotRecord: "+fileoutputstream.toString());
objectoutputstream = new ObjectOutputStream(fileoutputstream);
Log.d(this.getClass().getName(), "loadPilotRecord: "+objectoutputstream.toString());
objectoutputstream.writeObject(pilotRecord);
objectoutputstream.close();
fileoutputstream.close();
fileinputstream = new FileInputStream("test1");
Log.d(this.getClass().getName(), "loadPilotRecord: "+fileinputstream.toString());
objectinputstream = new ObjectInputStream(fileinputstream);
Log.d(this.getClass().getName(), "loadPilotRecord: "+objectinputstream.toString());
pilotRecord = (PilotRecord)objectinputstream.readObject();
objectinputstream.close();
fileinputstream.close();
Моя проблема в том, что я получаю FileNotFoundException в следующей строке в приведенном выше коде: fileinputstream = new FileInputStream ( "test1" ); Я не совсем уверен, как узнать, какой путь он использует, или, может быть, есть более очевидная проблема, которую я просто не вижу. Извините, если это немного принципиально, но я все еще пытаюсь найти свои ноги. Операторы Log.d просто выводят имя класса и идентификатор.
ТИА,
Вы пробовали openfileinput ( "test1" вместо нового FileInputStream ( "test1" )?
Чтобы узнать, какой путь на самом деле используется, попробуйте:
File f = new File("test1");
Log.d(this.getClass().getName(), f.getAbsolutePath());
Посмотрите на это местоположение, если файл действительно создан - если нет, вы не сможете прочитать.
РЕДАКТИРОВАТЬ: удалил угадать флеш, который был довольно абсурдным
FileNotFoundException
, так как файл будет создан вызовом конструктора FileOutputStream.