org.snapscript.core.type.extend.ReaderExtension Maven / Gradle / Ivy
package org.snapscript.core.type.extend;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.LineNumberReader;
import java.io.Reader;
import java.io.Writer;
import java.util.ArrayList;
import java.util.List;
public class ReaderExtension {
public ReaderExtension() {
super();
}
public Reader buffer(Reader reader, int size) throws IOException {
return new BufferedReader(reader, size);
}
public String readText(Reader reader) throws IOException {
StringBuilder builder = new StringBuilder();
char[] data = new char[1024];
int count = 0;
try {
while((count = reader.read(data)) != -1) {
builder.append(data, 0, count);
}
return builder.toString();
} finally {
reader.close();
}
}
public List readLines(Reader reader) throws IOException {
LineNumberReader iterator = new LineNumberReader(reader);
List lines = new ArrayList();
try {
while(true) {
String line = iterator.readLine();
if(line == null) {
return lines;
}
lines.add(line);
}
} finally {
iterator.close();
}
}
public void copyTo(Reader reader, Writer writer) throws IOException {
char[] data = new char[1024];
int count = 0;
try {
while((count = reader.read(data)) != -1) {
writer.write(data, 0, count);
}
} finally {
reader.close();
}
}
public void copyTo(Reader reader, StringBuilder builder) throws IOException {
char[] data = new char[1024];
int count = 0;
try {
while((count = reader.read(data)) != -1) {
builder.append(data, 0, count);
}
} finally {
reader.close();
}
}
}