package org.test4j.tools.cpdetector; import java.io.BufferedInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.Reader; import java.net.URL; import java.nio.charset.Charset; public abstract class AbstractCodepageDetector implements ICodepageDetector { public Charset detectCodepage(URL url) throws IOException { BufferedInputStream in = new BufferedInputStream(url.openStream()); Charset result = detectCodepage(in, 2147483647); in.close(); return result; } public final Reader open(URL url) throws IOException { Reader ret = null; Charset cs = detectCodepage(url); if (cs != null) { ret = new InputStreamReader(new BufferedInputStream(url.openStream()), cs); } return ret; } public int compareTo(ICodepageDetector o) { String other = o.getClass().getName(); String mine = super.getClass().getName(); return mine.compareTo(other); } }