Lire un fichier binaire dans android

J'ai créé un objet personnalisé de type Task et je veux l'enregistrer dans un fichier binaire dans la mémoire de stockage interne. Ici, c'est la classe que j'ai créé:

public class Task{

private String title;
private int year;
private int month;
private int day;
private int hour;
private int minute;

public Task(String inputTitle, int inputYear, int inputMonth, int inputDay, int inputHour, int inputMinute){

    this.title = inputTitle;
    this.year = inputYear;
    this.month = inputMonth;
    this.day = inputDay;
    this.hour = inputHour;
    this.minute = inputMinute;

}

public String getTitle(){

    return this.title;

}

public int getYear(){

    return this.year;

}

public int getMonth(){

    return this.month;

}

public int getDay(){

    return this.day;

}

public int getHour(){

    return this.hour;

}

public int getMinute(){

    return this.minute;

}
}

Dans une activité, j'ai créé une méthode qui permettra de sauver mon objet dans un fichier. C'est le code que j'ai utilisé:

public void writeData(Task newTask){

        try {

            FileOutputStream fOut = openFileOutput("data",MODE_WORLD_READABLE);
            fOut.write(newTask.getTitle().getBytes());
            fOut.write(newTask.getYear());
            fOut.write(newTask.getMonth());
            fOut.write(newTask.getDay());
            fOut.write(newTask.getHour());
            fOut.write(newTask.getMinute());
            fOut.close();

        } catch (FileNotFoundException e) {

            e.printStackTrace();

        } catch (IOException e){

            e.printStackTrace();

        }
}

Maintenant, je voudrais créer une méthode qui va extraire les données du fichier. En lisant sur internet, beaucoup de gens utilisent FileInputStream mais j'ai de la difficulté à extraire les octets d'elle et de savoir combien de temps une Chaîne de caractères peut être. En outre, j'ai utilisé une méthode simple pour trouver en ligne mais j'ai la permission denied. Comme je l'ai dit, je suis très nouveau à développement Android.

public void readData(){

    FileInputStream fis = null;

    try {
        fis = new FileInputStream("data");

        System.out.println("Total file size to read (in bytes) : "
                + fis.available());

        int content;
        while ((content = fis.read()) != -1) {
            //convert to char and display it
            System.out.print((char) content);
        }

    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            if (fis != null)
                fis.close();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
}

Toute aide sera appréciée.

OriginalL'auteur miszu | 2014-02-16