![JAR search and dependency download from the Maven repository](/logo.png)
aQute.lib.collections.LineCollection Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of aQute.libg Show documentation
Show all versions of aQute.libg Show documentation
A library to be statically linked. Contains many small utilities. This bundle should not be installed in a framework, it is compile only.
package aQute.lib.collections;
import java.io.BufferedReader;
import java.io.Closeable;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.util.Iterator;
public class LineCollection implements Iterator, Closeable {
final BufferedReader reader;
String next;
public LineCollection(InputStream in) throws IOException {
this(new InputStreamReader(in, "UTF8"));
}
public LineCollection(File in) throws IOException {
this(new InputStreamReader(new FileInputStream(in), "UTF-8"));
}
public LineCollection(Reader reader) throws IOException {
this(new BufferedReader(reader));
}
public LineCollection(BufferedReader reader) throws IOException {
this.reader = reader;
next = reader.readLine();
}
public boolean hasNext() {
return next != null;
}
public String next() {
if (next == null)
throw new IllegalStateException("Iterator has finished");
try {
String result = next;
next = reader.readLine();
if (next == null)
reader.close();
return result;
} catch (Exception e) {
// ignore
return null;
}
}
public void remove() {
if (next == null)
throw new UnsupportedOperationException("Cannot remove");
}
public void close() throws IOException {
reader.close();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy