Android FileOutputStream emplacement du fichier de sauvegarde
J'ai une application qui enregistre dans un fichier (stockage interne) entrée de données par l'utilisateur, et au démarrage du chargement de ce fichier et affiche le contenu. Je voudrais savoir: où puis-je trouver mon fichier (data.txt
)?
En outre, si je entrées "Bonjour" puis "Monde", lorsque je charge le fichier, je vois "HelloWorld" dans la même ligne, mais je veux que "Bonjour" et "Monde" est imprimé sur deux lignes différentes.
Pour le fichier de sauvegarde:
public void writeToFile(String data) {
try {
FileOutputStream fou = openFileOutput("data.txt", MODE_APPEND);
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fou);
outputStreamWriter.write(data);
outputStreamWriter.close();
}
catch (IOException e) {
Log.e("Exception", "File write failed: " + e.toString());
}
}
Pour le chargement de fichier:
public String readFromFile() {
String ret = "";
try {
InputStream inputStream = openFileInput("data.txt");
if ( inputStream != null ) {
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String receiveString = "";
StringBuilder stringBuilder = new StringBuilder();
while ( (receiveString = bufferedReader.readLine()) != null ) {
stringBuilder.append(receiveString);
}
inputStream.close();
ret = stringBuilder.toString();
}
}
catch (FileNotFoundException e) {
Log.e("login activity", "File not found: " + e.toString());
} catch (IOException e) {
Log.e("login activity", "Can not read file: " + e.toString());
}
return ret;
}
Grâce.
[Mise à JOUR]
J'ai inséré "\n" après chaque entrée:
user = (EditText) v.findViewById(R.id.username);
writeToFile(user.getText().toString() + "\n");
Mais lorsque j'imprime mon dossier, ils sont toujours sur la même ligne.
comment puis-je régler nouveau chemin pour le fichier de sauvegarde?
OriginalL'auteur xXJohnRamboXx | 2015-01-07
Vous devez vous connecter pour publier un commentaire.
Vous pouvez trouver le chemin d'accès du répertoire, qui est créé par
openFileOutput
, en utilisantYourActivity.this.getFilesDir().getAbsolutePath()
.Utilisation
line.separator
après avoir écrit un mot dans un fichier, par exemple:Ou vous pouvez également utiliser
replaceAll
de briser la Chaîne sur plusieurs lignes:êtes-vous sûr que lorsque vous êtes la lecture de données à partir d'un fichier pour ensuite ajouter la nouvelle ligne ?
essayer aussi ::
stringBuilder.append(receiveString);stringBuilder.append("\n");
j'ai l'impression de mes contet fichier dans un textview composant et les mots ne sont pas dans des lignes séparées
pour afficher le fichier de l'essayer à l'aide de DDMS
OriginalL'auteur ρяσѕρєя K
Je suppose que vous pouvez le trouver ici: data/data/[votre nom de paquet]/... et concernant écrire en deux lignes distinctes juste ajouter "\n" chaque fois que vous devez aller à une autre ligne.
Mise à jour de votre nouveau code d'abord pour résoudre les problème de saut de ligne
Si vous souhaitez écrire les données dans votre carte sd puis une fois à lire ce tutoriel : chrisrisner.com/...
OriginalL'auteur Erfan Mowlaei