Le stockage interne

Le stockage interne.

Introduction

Le stockage interne c'est une méthode de sauvegarde des données sous Android dans la mémoire interne. Les données sont sauvegardées même si vous quittez l'application mais il est supprimé si vous désinstaller l'application. Le fichier de différente extension (txt, xml, csv etc…), là ou se trouve les données sera dans le chemin 
/data/data/package_name/files/nom_de_fichier.extension
Ce chemin n'est pas accessible que si l'appareil est en mode root, pour plus d'information sur le root d'un appareil il faut chercher la solution sur l'internet car chaque appareil à une méthode différente que l'autre, en utilisant une application comme "Super Manager", "Root Explorer", "Explorer" etc.… pour accéder ce chemin. 
L'appareil est en mode root ou non, n'affecte pas au fonctionnement de cette méthode de sauvegarde des données, il affecte seulement que si je peux voire le fichier physiquement dans la mémoire ou non.

 Il existe 4 modes de création de ce fichier:
- MODE_PRIVATE Qui donne le droit, de créer ou de remplacer le fichier, exclusif pour l'application principale. - MODE_APPEND Qui donne le droit, de créer ou d'ajout à la fin de fichier s'il existe, exclusif pour l'application principale. - MODE_WORLD_READABLE Qui donne le droit de lire pour toutes les autres applications. - MODE_WORLD_WRITEABLE Qui donne le droit d'écrire pour toutes les autres applications.

Étapes à suivre pour lire

 Deux é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 la méthode openFileInput.

public FileInputStream openFileInput (String name)

Ouvrir un fichier pour lire. 

 Paramètres
name
Le nom de fichier à ouvrir, il ne peut pas contenir le séparateur de chemin '/'.
 Retours
Renvoie un objet de type FileInputStream.
 Lance
FileNotFoundException

Lire

Pour Lire il faut utiliser une des fonctions suivantes et à la fin appeler la méthode close().

1- public int read ()

Lit un seul octet et renvoie un nombre entier entre 0 et 255.

 Retours
Retourne -1 si la fin du flux a été atteinte
 Lance
IOException

2- public int read (byte[] buffer)

Lit tous les octets à partir de ce flux et les stocke dans le tableau d'octets. 

 Paramètres
buffer
Le tableau d'octet ou vous voulez stocker les données.
 Retours
Renvoie le nombre d'octets réellement lus ou -1 si la fin du flux a été atteinte.
 Lance
IOException

3- public int read (byte[] buffer, int byteOffset, int byteCount)

Lit "byteCount" octets à partir de ce flux et les stocke dans le tableau d'octets "buffer" à partir de la position "byteOffset".

 Paramètres
buffer
Le tableau d'octet ou vous voulez stocker les données.
byteOffset
la position initiale dans le tableau d'octet pour stocker les octets lus à partir de ce flux.
byteCount
le nombre maximum d'octets lus.
 Retours
Renvoie le nombre d'octets réellement lus ou -1 si la fin du flux a été atteinte.
 Lance
IOException

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 pour écrire:
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 la méthode openFileOutput.

public FileOutputStream openFileOutput (String name, int mode)

Ouvrir un fichier pour écrire, créer ce fichier s'il n'existe pas.

 Paramètres
name
Le nom de fichier à ouvrir, il ne peut pas contenir le séparateur de chemin '/'.
mode
Mode de fonctionnement. Utilisez 0 ou MODE_PRIVATE pour le fonctionnement par défaut, MODE_APPEND pour ajouter à un fichier déjà existe, MODE_WORLD_READABLE et MODE_WORLD_WRITEABLE pour contrôler les autorisations.
 Retours
Renvoie un objet de type FileOutputStream.
 Lance
FileNotFoundException.

Écrire

Pour écrire il faut utiliser une des fonctions suivantes et à la fin appeler la fonction close().

1- public void write (byte[] buffer)

Écrit un tableau d'octet.

 Paramètres
buffer
Le tableau d'octet que vous voulez écrire.
 Lance
IOException

2- public void write (int oneByte)

Écrit un octet à ce flux. Seul l'octet le moins significatif de la "oneByte" entier est écrit.

 Paramètres
oneByte
L'octet que vous voulez écrire.
 Lance
IOException

3- public void write (byte[] buffer, int byteOffset, int byteCount)

Écrit "byteCount" octets du tableau d'octet "buffer" à partir de la position "byteOffset".

 Paramètres
buffer
Le tableau d'octet que vous voulez écrire.
byteOffset
La position de départ dans le tableau.
byteCount
Le nombre d'octet à écrire.
 Lance
IOException

I- public void close ()

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

 Lance
IOException

Les fichiers statiques

Les fichiers statiques se sont les fichiers stockés lors de la compilation. Ces fichiers sont uniquement accessibles en lecture et on ne pourra pas les modifier. Pour les utiliser:
1- Votre fichiers doivent être stockés dans le répertoire res/raw/
2- Pour qu'on puisse accédé a ces fichiers il faut l'ouvrir à partir de la méthode openRawResource() en lui passant un paramètre, ce qui est l'id de fichier ex. R.raw.File_name
3- Pour les lire il faut utiliser une des fonctions read déjà mentionné précédemment, et enfin utilisant la méthode close.

Les fichiers de cache

Les fichiers de cache se sont des fichiers stockés dans la mémoire cache qui peut être supprimé par le système s'il a besoin de mémoire, mais le meilleur de les supprimés par le program qui les crées à fin de les utiliser, et bien sûr ces fichiers sont supprimés si l'application est désinstallée. Pour les utiliser:
1- Utiliser la méthode getCacheDir() qui représente le répertoire de cache.
2- Pour les lire et écrire il faut utiliser une des fonctions déjà mentionné précédemment read et write.


Comments