Java: FileWriter: создайте новую строку
Я сделал небольшой файл writer:
try {
FileWriter writer = new FileWriter(new File("file.txt"), false);
try {
String sizeX = jTextField1.getText();
String sizeY = jTextField2.getText();
writer.write(sizeX);
writer.write(sizeY);
writer.flush();
writer.close();
} catch (NumberFormatException e) {
}
} catch (IOException ex) {
}
теперь я хочу сделать новую строку, так же, как вы можете сделать это с" n " нормально, но это, похоже, не работает...
кто-нибудь знает, как сделать такую новую строку?
спасибо заранее! :)
8 ответов
если вы хотите получить новая строка символы, используемые в текущей ОС, как \r\n
для Windows, вы можете получить их с помощью
System.getProperty("line.separator");
- С Java7
System.lineSeparator()
- или, как упоминалось Стюартом, генерировать их через
String.format("%n");
вы также можете использовать PrintStream
и println
метод, который автоматически добавит разделитель зависимых от ОС строк в конце вашей строки
PrintStream fileStream = new PrintStream(new File("file.txt"));
fileStream.println("your data");
// ^^^^^^^ will add OS line separator after data
(кстати,System.out
is также экземпляр PrintStream).
попробовать System.getProperty( "line.separator" )
writer.write(System.getProperty( "line.separator" ));
попробуйте обернуть свой FileWriter
на BufferedWriter
:
BufferedWriter bw = new BufferedWriter(writer);
bw.newLine();
Javadocs для BufferedWriter здесь.
начиная с 1.8, я подумал, что это может быть дополнительное решение, которое стоит добавить к ответам:
путь java.НИО.файл.Файлы.write (путь пути, итерационные строки, OpenOption... options) бросает 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());
при добавлении к тому же файлу, возможно, используйте флаг добавления с файлами.написать ()
Files.write(Paths.get("file.txt"), sb.toString().getBytes(), StandardOpenOption.APPEND);
Если вы имеете в виду использовать тот же код, но добавить новую строку, так что, когда вы что-то добавить в файл, он будет на новой строке. Вы можете просто использовать
Здесь я также улучшил код: NumberFormatException было ненужным, поскольку ничто не было приведено к типу данных number, сохранение переменных для использования когда-то также было.
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");
}
Я бы решил проблему следующим образом:
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();
true в конструкторе FileWriter позволяет добавлять.
Метод newLine () предоставляется BufferedWriter
Может быть нормально, как решение?
здесь "\n " также работает нормально. Но проблема здесь заключается в текстовом редакторе (возможно, блокноте). Попробуйте увидеть вывод с помощью Wordpad.