title: java regex line
body: <p>In java i would like to read a file line by line and print the line to the output.
  I want to solve this with regular expressions.</p>
  
  <pre><code>while (...)
  {
    private static java.util.regex.Pattern line = java.util.regex.Pattern.compile(".*\\n");
    System.out.print(scanner.next(line));
  }
  </code></pre>
  
  <p>The regex in the code is not correct, as i get InputMismatchException.
  I am working on this regex for 2 hours. Please help with it.</p>
  
  <p>With regex powertoy i see that ".*\n" is correct. But my program runs incorrectly.</p>
  
  <p>The whole source is:</p>
  
  <pre><code>/**
   * Extracts the points in the standard input in off file format to the standard output in ascii points format.
   */
  
   import java.util.regex.Pattern;
   import java.util.Scanner;
  
  class off_to_ascii_points 
  {
      private static Scanner scanner = new Scanner(System.in);    
      private static Pattern fat_word_pattern = Pattern.compile("\\s*\\S*\\s*");
      private static Pattern line = Pattern.compile(".*\\n", Pattern.MULTILINE);
  
      public static void main(String[] args) 
      {
          try
          {
              scanner.useLocale(java.util.Locale.US);
  
                      /* skip to the number of points */
              scanner.skip(fat_word_pattern);
  
              int n_points = scanner.nextInt();
  
                      /* skip the rest of the 2. line */
              scanner.skip(fat_word_pattern); scanner.skip(fat_word_pattern);
  
              for (int i = 0; i &lt; n_points; ++i)
              {
                      System.out.print(scanner.next(line));
                        /*
                        Here my mistake is. 
                        next() reads only until the delimiter, 
                        which is by default any white-space-sequence. 
                        That is next() does not read till the end of the line 
                        what i wanted.
  
                        Changing "next(line)" to "nextLine()" solves the problem.
                        Also, setting the delimiter to line_separator 
                        right before the loop solves the problem too.
                        */
              }
  
          }
          catch(java.lang.Exception e)
          {
              System.err.println("exception");
              e.printStackTrace();
          }
      }
  }
  </code></pre>
  
  <p>The beginning of an example input is:</p>
  
  <pre><code>OFF
  4999996 10000000 0
  -28.6663 -11.3788 -58.8252 
  -28.5917 -11.329 -58.8287 
  -28.5103 -11.4786 -58.8651 
  -28.8888 -11.7784 -58.9071 
  -29.6105 -11.2297 -58.6101 
  -29.1189 -11.429 -58.7828 
  -29.4967 -11.7289 -58.787 
  -29.1581 -11.8285 -58.8766 
  -30.0735 -11.6798 -58.5941 
  -29.9395 -11.2302 -58.4986 
  -29.7318 -11.5794 -58.6753 
  -29.0862 -11.1293 -58.7048 
  -30.2359 -11.6801 -58.5331 
  -30.2021 -11.3805 -58.4527 
  -30.3594 -11.3808 -58.3798 
  </code></pre>
  
  <p>I first skip to the number 4999996 which is the number of lines containing point coordinates. These lines are that i am trying to write to the output.</p>