I can\'t find the documentation that specifies how a Scanner treats newline patterns by default. I want to read a file line by line and have the scanner be able to handle \\
It is not documented (in Java 1.6) but the JDK code uses this regex to match a line break:
"\r\n|[\n\r\u2028\u2029\u0085]"
Here's a link to the source code: http://cr.openjdk.java.net/~briangoetz/7012540/webrev/src/share/classes/java/util/Scanner.java.html
IMO, this ought to be specified, since Scanner
's behavior wrt to line separators is different to (for example) BufferedReader
's. (I've lodged a bug report ...)
Looking at the source code for Sun JDK 1.6, the pattern used is "\r\n|[\n\r\u2028\u2029\u0085]"
which says "\r\n" or any one of \r, \n or the unicode characters for "line separator", "paragraph separator", and "next line" respectively.