разница между newLine () и возвратом каретки ("\ r") - PullRequest
3 голосов
/ 22 июля 2010

В чем разница между newLine() и возвратом каретки ("\ r")? Какой из них лучше всего использовать?

File f = new File(strFileGenLoc);
BufferedWriter bw = new BufferedWriter(new FileWriter(f, false));
rs = stmt.executeQuery("select * from jpdata");
while ( rs.next() ) 
{
    bw.write(rs.getString(1)==null? "":rs.getString(1));
    bw.newLine();
}

Ответы [ 5 ]

14 голосов
/ 22 июля 2010

Предполагая, что вы имеете в виду это:

public static String newLine = System.getProperty("line.separator");

newLine не зависит от окружающей среды \r нет.

Так что newLine даст вам \r\n на окнах, но \n в другой среде.

Тем не менее, вы не должны использовать это в JTextArea, и println будет нормально работать с просто \n на окнах.

Редактировать сейчас, когда яВы видели код и ваш комментарий

В вашей ситуации.Я думаю, что вы должны использовать свою собственную константу - \r\n

  File f = new File(strFileGenLoc);
  BufferedWriter bw = new BufferedWriter(new FileWriter(f, false));
  rs = stmt.executeQuery("select * from jpdata");
  while ( rs.next() ) {
    bw.write(rs.getString(1)==null? "":rs.getString(1));
    bw.write("\\r\\n");
  }
9 голосов
/ 23 июля 2010

В старые времена телетайпов ASR-33 (а затем и матричных принтеров с подвижными печатающими головками) CR буквально возвращал каретку влево, как в пишущей машинке, и LF продвигал бумагу. Механизм может перекрывать операции, если CR предшествует LF, поэтому символ перевода строки всегда был CR-LF, т.е. \ r \ n. Если вы получили его обратно на печать, печать заняла гораздо больше времени. Unix была первой (единственной?) Системой, которая приняла \ n как стандартный разделитель строк. DOS / Windows нет.

1 голос
/ 22 июля 2010

Написать разделитель строк. Линия Строка разделителя определяется системное свойство line.separator и является не обязательно один перевод строки ('\ n') символ.

источник: http://download.oracle.com/docs/cd/E17476_01/javase/1.5.0/docs/api/java/io/BufferedWriter.html

0 голосов
/ 02 июля 2015

На платформах Windows разделителем строк является CRLF (возврат каретки / перевод строки), то есть «\ r \ n».На платформах Unix это просто LF, "\ n".Традиционно на платформах Apple это был просто CR, \ r ".

0 голосов
/ 02 июня 2013

главная новая строка (\n) и возврат каретки (\r):

новая строка (\n) и возврат каретки (\r) и r escape-последовательности в Java.

новая строка (\n):

при обнаружении \n в исполняемых инструкциях JVM разбивает строку на 2 части, из которых мы поместили \n (escapeпоследовательность) .. пример:

println("Stackover\nflow");

вывод:

Stackover // here the line got split into 2 lines because of "\n"   
flow

возврат каретки (\r):

данные или символ, помещенные после \rполучить переопределение с предыдущими символами, присутствующими в той же строке ...

пример:

println("Stackover\rflow"); 
output:
flow  // here Statckover is overtired  because of "\r" 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...