difference between newLine() and carriage return(“\r”)

后端 未结 5 1907
失恋的感觉
失恋的感觉 2020-12-05 22:44

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

File f = new File(strFileGenLoc);
BufferedWrit         


        
相关标签:
5条回答
  • 2020-12-05 22:59

    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".

    0 讨论(0)
  • 2020-12-05 23:05

    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

    0 讨论(0)
  • 2020-12-05 23:08

    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 讨论(0)
  • 2020-12-05 23:16

    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.

    0 讨论(0)
  • 2020-12-05 23:22

    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");
      }
    
    0 讨论(0)
提交回复
热议问题