KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > proguard > FileWordReader


1 /*
2  * ProGuard -- shrinking, optimization, obfuscation, and preverification
3  * of Java bytecode.
4  *
5  * Copyright (c) 2002-2007 Eric Lafortune (eric@graphics.cornell.edu)
6  *
7  * This program is free software; you can redistribute it and/or modify it
8  * under the terms of the GNU General Public License as published by the Free
9  * Software Foundation; either version 2 of the License, or (at your option)
10  * any later version.
11  *
12  * This program is distributed in the hope that it will be useful, but WITHOUT
13  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
15  * more details.
16  *
17  * You should have received a copy of the GNU General Public License along
18  * with this program; if not, write to the Free Software Foundation, Inc.,
19  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20  */

21 package proguard;
22
23 import java.io.*;
24 import java.net.URL JavaDoc;
25
26
27 /**
28  * A <code>WordReader</code> that returns words from a file or a URL.
29  *
30  * @author Eric Lafortune
31  */

32 public class FileWordReader extends WordReader
33 {
34     private String JavaDoc name;
35     private LineNumberReader reader;
36
37
38     /**
39      * Creates a new FileWordReader for the given file.
40      */

41     public FileWordReader(File file) throws IOException
42     {
43         super(file.getParentFile());
44
45         this.name = file.getPath();
46         this.reader = new LineNumberReader(
47                       new BufferedReader(
48                       new FileReader(file)));
49     }
50
51
52     /**
53      * Creates a new FileWordReader for the given URL.
54      */

55     public FileWordReader(URL JavaDoc url) throws IOException
56     {
57         super(null);
58
59         this.name = url.toString();
60         this.reader = new LineNumberReader(
61                        new BufferedReader(
62                        new InputStreamReader(url.openStream())));
63     }
64
65
66     // Implementations for WordReader.
67

68     protected String JavaDoc nextLine() throws IOException
69     {
70         return reader.readLine();
71     }
72
73
74     protected String JavaDoc lineLocationDescription()
75     {
76         return "line " + reader.getLineNumber() + " of file '" + name + "'";
77     }
78
79
80     public void close() throws IOException
81     {
82         super.close();
83
84         if (reader != null)
85         {
86             reader.close();
87         }
88     }
89 }
90
Popular Tags