コード例 #1
0
 // TODO Make the call to save and load s.t. it cannot enter both at the same time
 private synchronized void saveTamagotchiFromFile() {
   FileOutputStream fos = null;
   try {
     available.acquire();
     this.deleteFile(fileName);
     // TODO How to make sure that we are done deleting the file? (in a better way)
     // TODO Make sure that only one thread is saving a time
     boolean found = true;
     while (found) {
       String[] fs = this.fileList();
       boolean k = false;
       for (int i = 0; i < fs.length; i++) {
         if (fs[i].equals(fileName)) k = true;
       }
       found = k;
     }
     fos = this.openFileOutput(fileName, Context.MODE_PRIVATE);
     ObjectOutputStream os = new ObjectOutputStream(fos);
     os.writeObject(tama);
     os.flush();
     os.close();
     fos.close();
     Log.d(TAMAGOTCHI, "Done saving tama");
   } catch (FileNotFoundException e) {
     e.printStackTrace();
   } catch (IOException e) {
     e.printStackTrace();
   } catch (InterruptedException e) {
     e.printStackTrace();
   } finally {
     available.release();
   }
 }
コード例 #2
0
 // TODO Der kommer en EOF exception når der forsøges at readObject.
 // TODO Brug sharedpref til at gemme og læse tamagotchi.
 private synchronized void loadTamagotchiFromFile() {
   FileInputStream fis = null;
   try {
     available.acquire();
     Log.d(TAMAGOTCHI, "Loading the tamagotchi from: " + fileName);
     fis = this.openFileInput(fileName);
     ObjectInputStream is = new ObjectInputStream(fis);
     // is.reset();
     // TODO Bug when reading a tama from filesystem
     // Steps to reproduce: Kill with the app context menu thingie, start app again.
     tama = (Tamagotchi) is.readObject();
     if (tama == null) return;
     is.close();
     fis.close();
     initializePlayingfield();
     Log.d(TAMAGOTCHI, "Done loading the tama");
   } catch (FileNotFoundException e) {
     e.printStackTrace();
   } catch (ClassNotFoundException e) {
     e.printStackTrace();
   } catch (OptionalDataException e) {
     e.printStackTrace();
   } catch (StreamCorruptedException e) {
     e.printStackTrace();
   } catch (IOException e) {
     e.printStackTrace();
   } catch (InterruptedException e) {
     e.printStackTrace();
   } finally {
     available.release();
   }
 }
コード例 #3
0
  public synchronized void writeProgress(int current_file, int total_files) {
    try {

      DataOutputStream out =
          new DataOutputStream(new BufferedOutputStream(new FileOutputStream(resume_file, false)));
      out.writeInt(current_file);
      out.writeInt(total_files);
      out.flush();
      out.close();

    } catch (FileNotFoundException e) {
      e.printStackTrace();
      Log.e(TAG, "writeProgress resume.txt not found.");
    } catch (IOException ex) {
      Log.e(TAG, "Unable to create resume.txt.");
    }
  }