La fin de la ligne, FileWriter \n
Je suis en train d'ajouter une nouvelle ligne à un fichier déjà existant, mais toutes les commandes que j'ai essayé ont abouti à juste ajouter du texte à la première ligne. Je veux le résultat dans le fichier de ressembler à
ROW1
ROW2
private void addToFavToFile(String site){
BufferedWriter writer = null;
File root = Environment.getExternalStorageDirectory();
try{
writer = new BufferedWriter(new FileWriter(Environment.getExternalStorageDirectory()+"/test2.txt",true));
writer.write("ROW1");
writer.newLine();
writer.write("ROW2");
writer.close();
}catch(Exception e){
}
Comment puis-je résoudre ce problème?
- Si votre question a été posée, ou si elle n'est plus valide, s'il vous plaît "cochez la case" choisir la réponse la plus appropriée de sorte que chacun sait que le problème a été résolu. Merci.
Vous devez vous connecter pour publier un commentaire.
J'ai essayé le code suivant et il semble produire ce que vous êtes après.
Pour le tester j'ai mis la ligne "C'est la première ligne." au début de mon fichier de test. Après l'exécution de quelques temps, la sortie ressemble à ceci:
Comme vous pouvez le voir à partir de la date-heure, je suis en ajoutant de nouvelles lignes à la fin de ce fichier à chaque fois.
Veuillez utiliser le code suivant,
Au lieu d'utiliser
writer.newLine();
Vous devez utiliser
writer.write("\\n\\r");
newLine()
est le même quewrite(System.getProperty("line.separator"))
, qui doit être de la bonne terminaison de ligne du système.Vous pouvez également essayer d'utiliser
PrintWriter.println(String s)
http://docs.oracle.com/javase/6/docs/api/java/io/PrintWriter.html
Si vous voulez juste la finale de saut de ligne, ajouter la
writer.newLine()
aprèswriter.write("Row2")
.Si il n'y a pas de saut de ligne en cours d'écriture,
writer.newLine()
peut écrire le mauvais marqueur de fin de ligne dans le fichier. Écrire à la main.Pourquoi ne pas vous forcer à écrire à la fin du fichier, y compris le
offset
dans les commandes d'écriture...Au lieu d'ajouter une nouvelle ligne, essayez d'ajouter deux nouvelles lignes dans une rangée.
Un pour aller à la ligne en dessous ROW1 et l'autre pour l'insertion d'un plus ligne vide.