Le stockage externe

Le stockage externe.

Introduction

Le stockage externe c'est une méthode de sauvegarde des données sous Android dans la mémoire externe, la carte SD. Les données sont sauvegardées même si vous quittez l'application ou si vous désinstaller l'application. 
Tous les contenus de ce support de stockage sont accessibles en lecture pour toutes les applications.
Pour qu'on puisse modifier les données dans la mémoire externe, il faut ajouter la permission suivante dans le fichier Manifest:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

Tester l'accessibilité du stockage externe Pour tester l'accessibilité du stockage externe s'il est bien monté et s'il est accessible en écriture il faut utiliser la méthode getExternalStorageStage().
Cette méthode retourne une chaîne de caractère qui contient l'état du support externe.

 
 public static final String MEDIA_BAD_REMOVAL                         
      Constant Value: "bad_removal"
 public static final String MEDIA_CHECKING                                 
      Constant Value: "checking"
 public static final String MEDIA_MOUNTED                                  
      Constant Value: "mounted"
 public static final String MEDIA_MOUNTED_READ_ONLY        
      Constant Value: "mounted_ro"
 public static final String MEDIA_NOFS                                           
      Constant Value: "nofs"
 public static final String MEDIA_REMOVED                                  
      Constant Value: "removed"
 public static final String MEDIA_SHARED                                     
      Constant Value: "shared"
 public static final String MEDIA_UNMOUNTABLE                       
      Constant Value: "unmountable"
 public static final String MEDIA_UNMOUNTED                           
      Constant Value: "unmounted"

Suivant, un exemple qui test l'accessibilité du support externe:

   boolean StockageExterneDisponible = false;
   boolean StockageExterneDisponibleEnEcriture = false;
   String etat = Environment.getExternalStorageState();
 
   if (Environment.MEDIA_MOUNTED.equals(etat)) {

// on peut lire et écrire

       StockageExterneDisponible = StockageExterneDisponibleEnEcriture = true;
   } else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(etat)) {

// on peut lire seulement

       StockageExterneDisponible = true;
       StockageExterneDisponibleEnEcriture = false;
   } else {

/* Quelque chose d'autre. C'est peut-être l'un des nombreux autres états, mais tout ce qu'il faut savoir, c'est qu'on ne pas lire ni écrire. */

       StockageExterneDisponible = StockageExterneDisponibleEnEcriture = false;
   }

Étapes à suivre pour lire

 Trois étapes à suivre pour lire:
1- Créer un objet de type FileInputStream.
2- Utiliser une des fonctions de lecture.
3- Appeler la fonction close().

FileInputStream

La classe FileInputStream contient des différentes fonctions pour lire un fichier.

Créer un objet de type FileInputStream
Pour créer un objet de type FileInputStream on utilise une des constructeurs de cet objet.

1- public FileInputStream (File file)

Construit une nouvelle FileInputStream qui lit à partir du fichier.

 Paramètres
file
Le fichier à partir duquel lit ce flux.
 Lance
FileNotFoundException si le fichier n'existe pas.

2- public FileInputStream (String path)

Equivalent à new FileInputStream (new File (path)). 

 Lance
FileNotFoundException.

Lire

Pour Lire il faut utiliser une des fonctions read déjà mentionné précédemment, et enfin utilisant la méthode close.

I- public void close ()

Ferme ce flux. Cette méthode libérer toutes les ressources utilisées.

 Lance
IOException

Étapes à suivre pour écrire

 Trois étapes à suivre:
1- Créer un objet de type FileOutputStream.
2- Utiliser une des fonctions d'écriture.
3- Appeler la fonction close().

FileOutputStream

La classe FileOutputStream contient des différentes méthodes pour écrire dans un fichier.

Créer un objet de type FileOutputStream
Pour créer un objet de type FileOutputStream on utilise une des constructeurs de cet objet.

1- public FileOutputStream (File file)

Construit une nouvelle FileOutputStream qui écrit dans un fichier. Le fichier sera tronqué si elle existe, et créé s'il n'existe pas.

 Lance
FileNotFoundException si le fichier ne peut être ouvert en écriture.

2- public FileOutputStream (File file, boolean append)

Construit une nouvelle FileOutputStream qui écrit dans un fichier. Si append est vrai et que le fichier existe déjà, il sera ajouté à, sinon il sera tronqué. Si le fichier n'existe pas se sera créé.

 Lance
FileNotFoundException si le fichier ne peut être ouvert en écriture.

3- public FileOutputStream (String path)

Construit une nouvelle FileOutputStream à partir d'un chemin. Le fichier sera tronqué si elle existe, et créé s'il n'existe pas.

 Lance
FileNotFoundException si le fichier ne peut être ouvert en écriture.

4- public FileOutputStream (String path, boolean append)

Construit une nouvelle FileOutputStream à partir d'un chemin. Si append est vrai et que le fichier existe déjà, il sera ajouté à, sinon il sera tronqué. Si le fichier n'existe pas se sera créé.

 Lance
FileNotFoundException si le fichier ne peut être ouvert en écriture.

Écrire

Pour écrire il faut utiliser une des méthodes write déjà mentionné précédemment, et enfin utilisant la méthode close.

I- public void close ()

Ferme ce flux. Cette méthode libérer toutes les ressources utilisées.

 Lance
IOException

Comments