开发者

difference between newLine() and carriage return("\r")

开发者 https://www.devze.com 2023-01-08 22:12 出处:网络
What is the difference between newLine() and carriage return (\"\\r\")? Which one is best to use? File f = new File(strFileGenLoc);

What is the difference between newLine() and carriage return ("\r")? Which one is best to use?

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? 开发者_JAVA百科"":rs.getString(1));
    bw.newLine();
}


Assuming you mean this:

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

newLine is environment agnostic \r isn't.

So newLine will give you \r\n on windows but \n on another environment.

However, you shouldn't use this in a JTextArea and println will work fine with just \n on windows.

Edit now that I've seen the code and your comment

In your situation. I think you should use your own constant - \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");
  }


In the old days of ASR-33 teletypes (and, later, dot-matrix printers with travelling print-heads), the CR literally returned the carriage to the left, as in a typewriter, and the LF advanced the paper. The machinery could overlap the operations if the CR came before the LF, so that's why the newline character was always CR-LF, i.e. \r\n. If you got it back to front it took much longer to print. Unix was the first (only?) system to adopt just \n as the standard line separator. DOS/Windows didn't.


Write a line separator. The line separator string is defined by the system property line.separator, and is not necessarily a single newline ('\n') character.

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


On Windows platforms, the line separator is CRLF (carriage return / line feed), which is "\r\n". On Unix platforms, it's just LF, "\n". Traditionally, on Apple platforms it has been just CR, "\r".


the major newLine(\n) and carriage return (\r) is :

new line(\n) & carriage return (\r) both r escape sequence in java..

new line(\n):

when ever \n is found in executable statements,the JVM splits the line into 2 parts from where we placed \n (escape sequence).. example :

println("Stackover\nflow");

output:

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

carriage return (\r):

the data or character placed after the \r get overtire with the previous characters present in the same line ...

example :

println("Stackover\rflow"); 
output:
flow  // here Statckover is overtired  because of "\r" 
0

精彩评论

暂无评论...
验证码 换一张
取 消