1 /*
2  * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * This code is free software; you can redistribute it and/or modify it
6  * under the terms of the GNU General Public License version 2 only, as
7  * published by the Free Software Foundation.
8  *
9  * This code is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12  * version 2 for more details (a copy is included in the LICENSE file that
13  * accompanied this code).
14  *
15  * You should have received a copy of the GNU General Public License version
16  * 2 along with this work; if not, write to the Free Software Foundation,
17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18  *
19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20  * or visit www.oracle.com if you need additional information or have any
21  * questions.
22  */
23 
24 /* @test
25    @bug 1238814
26    @summary check for correct implementation of RandomAccessFile.readLine
27    */
28 
29 import java.io.*;
30 
31 public class ReadLine {
32 
main(String args[])33     public static void main(String args[]) throws Exception {
34         File fn = new File("x.ReadLine");
35         RandomAccessFile raf = new RandomAccessFile(fn,"rw");
36         try {
37             String line;
38             int ctr = 1;
39             String expected;
40 
41             raf.writeBytes
42                 ("ln1\rln2\r\nln3\nln4\rln5\r\nln6\n\rln8\r\rln10\n\nln12\r\r\nln14");
43             raf.seek(0);
44 
45             while ((line=raf.readLine()) != null) {
46                 if ((ctr == 7) || (ctr == 9) ||
47                     (ctr == 11) || (ctr == 13)) {
48                      expected = "";
49                 } else {
50                     expected = "ln" + ctr;
51                 }
52                 if (!line.equals(expected)) {
53                     throw new Exception("Expected \"" + expected + "\"" +
54                                         ", read \"" + line + "\"");
55                 }
56                 ctr++;
57             }
58         } finally {
59             raf.close();
60         }
61         System.err.println("Successfully completed test!");
62     }
63 
64 }
65