Wie bekomme ich eine plattformabhängige Newline in Java? Ich kann nicht "\n"
überall verwenden.
java
cross-platform
newline
eol
Spoike
quelle
quelle
Antworten:
Wenn Sie Java 1.5 oder höher und das String.format (oder andere Formatierungsmethoden ) verwenden, können Sie zusätzlich zur Eigenschaft line.separator
%n
wie in verwendenWeitere Informationen finden Sie in der Java 1.8-API für Formatierer .
quelle
%
Benutzereingaben enthält!String.format(s + "%n")
ist leicht zu lösen durchString.format("%s%n", s)
. Es ist immer riskant, Benutzereingaben als Formatkörper einzubeziehen (auf die gleiche Weise wieeval()
).Java 7 hat jetzt eine
System.lineSeparator()
Methode.quelle
lineSeperator(int)
bestimmte Anzahl von Leitungsseparatoren zurückgibt, da ich häufig 2 gleichzeitig verwende.String.join("", Collections.nCopies(5, System.lineSeparator()))
System.lineSeparator().repeat(5)
Sie können verwenden
um das Zeilentrennzeichen zu erhalten
quelle
System.lineSeparator()
Details hinzufügen, damit Sie hier eine endgültige Antwort auf diese Frage erhalten?Wenn Sie versuchen, eine neue Zeile in eine Datei zu schreiben, können Sie einfach die newLine () -Methode von BufferedWriter verwenden.
quelle
Dies ist auch möglich :
String.format("%n")
.Oder
String.format("%n").intern()
um einige Bytes zu speichern.quelle
notepad
ist nicht das richtige Werkzeug, um den Inhalt einer Datei anzuzeigen. Verwenden Siehexdump
oderod
.\r\n
In der commons-lang- Bibliothek steht ein konstantes Feld mit dem Namen SystemUtils.LINE_SEPARATOR zur Verfügung
quelle
Das obige Snippet enthält zwei Zeichenfolgen, die unabhängig von den Plattformen durch eine neue Zeile getrennt sind.
quelle
Wenn Sie mit einer
BufferedWriter
Instanz in eine Datei schreiben , verwenden Sie dienewLine()
Methode dieser Instanz. Es bietet eine plattformunabhängige Möglichkeit, die neue Zeile in eine Datei zu schreiben.quelle
Vermeiden Sie das Anhängen von Zeichenfolgen mit String + String usw., und verwenden Sie stattdessen StringBuilder.
quelle
string + string
" erheben .