J'ai codé ce qui suit FileWriter
:
try {
FileWriter writer = new FileWriter(new File("file.txt"), false);
String sizeX = jTextField1.getText();
String sizeY = jTextField2.getText();
writer.write(sizeX);
writer.write(sizeY);
writer.flush();
writer.close();
} catch (IOException ex) {}
Maintenant, je veux insérer une nouvelle ligne, comme vous le feriez avec \n
normalement, mais cela ne semble pas fonctionner.
Que peut-on faire pour résoudre cela?
Merci.
Si vous voulez obtenir nouvelle ligne caractères utilisés dans le système d'exploitation actuel, comme \r\n
Pour Windows, vous pouvez les obtenir par
System.getProperty("line.separator");
System.lineSeparator()
String.format("%n");
Vous pouvez également utiliser PrintStream
et sa méthode println
qui ajoutera automatiquement un séparateur de ligne dépendant du système d'exploitation à la fin de votre chaîne.
PrintStream fileStream = new PrintStream(new File("file.txt"));
fileStream.println("your data");
// ^^^^^^^ will add OS line separator after data
(BTW System.out
Est également une instance de PrintStream).
Essayez System.getProperty( "line.separator" )
writer.write(System.getProperty( "line.separator" ));
Essayez d’emballer votre FileWriter
dans un BufferedWriter
:
BufferedWriter bw = new BufferedWriter(writer);
bw.newLine();
Javadocs pour BufferedWriter ici .
Depuis 1.8, je pensais que cela pourrait être une solution supplémentaire qui mérite d’être ajoutée aux réponses:
Path Java.nio.file.Files.write (chemin d'accès, lignes itérables, options OpenOption ...) lève IOException
StringBuilder sb = new StringBuilder();
sb.append(jTextField1.getText());
sb.append(jTextField2.getText());
sb.append(System.lineSeparator());
Files.write(Paths.get("file.txt"), sb.toString().getBytes());
Si vous ajoutez au même fichier, utilisez peut-être un indicateur Append avec Files.write ()
Files.write(Paths.get("file.txt"), sb.toString().getBytes(), StandardOpenOption.APPEND);
Si vous voulez dire utiliser le même code mais ajouter une nouvelle ligne, de sorte que lorsque vous ajoutez quelque chose au fichier, il sera sur une nouvelle ligne. Vous pouvez simplement utiliser newLine()
de BufferedWriter.
Ici, j'ai amélioré le code également: NumberFormatException n'était pas nécessaire, car aucun type de données numérique n'était transtypé, l'enregistrement des variables à utiliser une fois l'était également.
try {
BufferedWriter writer = new BufferedWriter(new FileWriter("file.txt"));
writer.write(jTextField1.getText());
writer.write(jTextField2.getText());
writer.newLine();
writer.flush();
writer.close();
} catch (IOException ex) {
System.out.println("File could not be created");
}
Ici "\ n" fonctionne aussi très bien. Mais le problème ici réside dans l'éditeur de texte (probablement le bloc-notes). Essayez de voir la sortie avec Wordpad.
Je voudrais aborder le problème comme ceci:
BufferedWriter output;
output = new BufferedWriter(new FileWriter("file.txt", true));
String sizeX = jTextField1.getText();
String sizeY = jTextField2.getText();
output.append(sizeX);
output.append(sizeY);
output.newLine();
output.close();
Le true dans le constructeur FileWriter permet d’ajouter.
La méthode newLine () est fournie par BufferedWriter.
Pourrait être une solution acceptable?