У меня есть метод с именем ReadTill
, который имеет одинаковое тело кода, но разные типы параметров. Может ли кто-нибудь показать мне стратегию / код для их объединения. Я не думаю, что InputStream
и BufferedReader
имеют общий интерфейс, если они это делают, что это такое, а также, если бы они этого не делали, как бы я это сделал?
Я думаю, что вопрос должен быть, как я могу сделать это с генериками?
Заранее спасибо.
public static void ReadTill(InputStream in, OutputStream out, String end) throws IOException {
int c, pos = 0;
StringBuffer temp = new StringBuffer();
while ((c = in.read()) != -1) {
char cc = (char) c;
if (end.charAt(pos++) == cc) {
if (pos >= end.length()) {
break;
}
temp.append(cc);
} else {
pos = 0;
if (temp.length() > 0) {
out.write(temp.toString().getBytes());
temp.setLength(0);
}
out.write(cc);
}
}
}
public static void ReadTill(BufferedReader in, OutputStream out, String end) throws IOException {
int c, pos = 0;
StringBuffer temp = new StringBuffer();
while ((c = in.read()) != -1) {
char cc = (char) c;
if (end.charAt(pos++) == cc) {
if (pos >= end.length()) {
break;
}
temp.append(cc);
} else {
pos = 0;
if (temp.length() > 0) {
out.write(temp.toString().getBytes());
temp.setLength(0);
}
out.write(cc);
}
}
}