Dans ce tuto je vais développer des méthodes me permettant de lire et écrire dans un fichier android. Pour faire cela je vais utiliser les class FileOutputStream, OutputStreamWriter pour l’écriture et les classes FileInputStream , InputStreamReader pour la lecture. J’utilise également la class Toast pour afficher des popups surgissant
D’abord ma méthode me permettant d’écrire dans un fichier
public void WriteSettings(Context context, String data){
FileOutputStream fOut = null;
OutputStreamWriter osw = null;
try{
fOut = context.openFileOutput("settings.dat",MODE_APPEND);
osw = new OutputStreamWriter(fOut);
osw.write(data);
osw.flush();
//popup surgissant pour le résultat
Toast.makeText(context, "Settings saved",Toast.LENGTH_SHORT).show();
}
catch (Exception e) {
Toast.makeText(context, "Settings not saved",Toast.LENGTH_SHORT).show();
}
finally {
try {
osw.close();
fOut.close();
} catch (IOException e) {
Toast.makeText(context, "Settings not saved",Toast.LENGTH_SHORT).show();
}
}
}
Ma méthode me permettant de lire dans mon fichier et de renvoyer le contenu sous forme de String (chaine de caractères) .
public String ReadSettings(Context context){
FileInputStream fIn = null;
InputStreamReader isr = null;
char[] inputBuffer = new char[255];
String data = null;
try{
fIn = context.openFileInput("settings.dat");
isr = new InputStreamReader(fIn);
isr.read(inputBuffer);
data = new String(inputBuffer);
//affiche le contenu de mon fichier dans un popup surgissant
Toast.makeText(context, " "+data,Toast.LENGTH_SHORT).show();
}
catch (Exception e) {
Toast.makeText(context, "Settings not read",Toast.LENGTH_SHORT).show();
}
/*finally {
try {
isr.close();
fIn.close();
} catch (IOException e) {
Toast.makeText(context, "Settings not read",Toast.LENGTH_SHORT).show();
}
} */
return data;
}
Pour tester ces deux méthodes je vais créer une fenêtre avec un bouton écrire, un bouton lire et une zone de saisie.
le fichier xml de ma fenêtre test.xml
Je rajoute le code suivant, me permettant d’afficher ma fenêtre de test.xml et tester mes méthodes sur le click de mes différents boutons
setContentView(R.layout.test);
Button btvoir = (Button) findViewById(R.id.btvoir);
Button btecrire = (Button) findViewById(R.id.btecrire);
btvoir.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
ReadSettings(lecontext);
}
});
btecrire.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
TextView datatext = (TextView) findViewById(R.id.text);
String sQuantite = datatext.getText()+"\n";
WriteSettings(lecontext,sQuantite);
}
});
Résultat
Il est temps de mettre à profit les tutoriels d’Android France:
Passez à la vitesse supérieure et investissez quelques dizaines d’euros pour acquérir les connaissances qui vous feront gagner de l’argent avec vos applications rendez-vous sur notre boutique Android-france pour ces formations en vidéo