newLine()和回车符(“\ r”)之间的区别

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(); } 

假设你是这个意思:

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

newLine是环境不可知的\r不是。

因此newLine会在Windows上提供\r\n ,但在另一个环境中提供\n

但是,你不应该在JTextArea中使用它,println只能在Windows上使用\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"); } 

在过去的ASR-33电传手机(以及后来的带有行走打印头的点阵式打印机)中,CR确实将滑架返回到左侧,就像打字机一样,LF推进了纸张。 如果CR出现在LF之前,机器可以重叠操作,这就是为什么换行符始终是CR-LF,即\ r \ n。 如果你把它拿回来,打印需要更长的时间。 Unix是第一个(仅?)系统,只采用\ n作为标准行分隔符。 DOS / Windows没有。

写一个行分隔符。 行分隔符字符串由系统属性line.separator定义,不一定是单个换行符(’\ n’)。

来源: http : //download.oracle.com/docs/cd/E17476_01/javase/1.5.0/docs/api/java/io/BufferedWriter.html

在Windows平台上,行分隔符是CRLF(回车符/换行符),即“\ r \ n”。 在Unix平台上,它只是LF,“\ n”。 传统上,在Apple平台上它只是CR,“\ r \ n”。

主要的newLine( \n )和回车符( \r )是:

新行( \n )和回车符( \r )两者都是java中的转义序列..

新行( \n ):

当在可执行语句中找到\n时, JVM将该行拆分为2个部分,从我们放置\n (转义序列)。示例:

 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"