summaryrefslogtreecommitdiffstats
path: root/src/proguard/FileWordReader.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/proguard/FileWordReader.java')
-rw-r--r--src/proguard/FileWordReader.java52
1 files changed, 43 insertions, 9 deletions
diff --git a/src/proguard/FileWordReader.java b/src/proguard/FileWordReader.java
index e0325b7..fb9fa50 100644
--- a/src/proguard/FileWordReader.java
+++ b/src/proguard/FileWordReader.java
@@ -2,7 +2,7 @@
* ProGuard -- shrinking, optimization, obfuscation, and preverification
* of Java bytecode.
*
- * Copyright (c) 2002-2011 Eric Lafortune (eric@graphics.cornell.edu)
+ * Copyright (c) 2002-2009 Eric Lafortune (eric@graphics.cornell.edu)
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
@@ -29,17 +29,23 @@ import java.net.URL;
*
* @author Eric Lafortune
*/
-public class FileWordReader extends LineWordReader
+public class FileWordReader extends WordReader
{
+ private final String name;
+ private LineNumberReader reader;
+
+
/**
* Creates a new FileWordReader for the given file.
*/
public FileWordReader(File file) throws IOException
{
- super(new LineNumberReader(new BufferedReader(new FileReader(file))),
- "file '" + file.getPath() + "'",
- file.getParentFile()
- );
+ super(file.getParentFile());
+
+ this.name = file.getPath();
+ this.reader = new LineNumberReader(
+ new BufferedReader(
+ new FileReader(file)));
}
@@ -48,8 +54,36 @@ public class FileWordReader extends LineWordReader
*/
public FileWordReader(URL url) throws IOException
{
- super(new LineNumberReader(new BufferedReader(new InputStreamReader(url.openStream()))),
- "file '" + url.toString() + "'",
- null);
+ super(null);
+
+ this.name = url.toString();
+ this.reader = new LineNumberReader(
+ new BufferedReader(
+ new InputStreamReader(url.openStream())));
+ }
+
+
+ // Implementations for WordReader.
+
+ protected String nextLine() throws IOException
+ {
+ return reader.readLine();
+ }
+
+
+ protected String lineLocationDescription()
+ {
+ return "line " + reader.getLineNumber() + " of file '" + name + "'";
+ }
+
+
+ public void close() throws IOException
+ {
+ super.close();
+
+ if (reader != null)
+ {
+ reader.close();
+ }
}
}