В чем разница b = reader.read() и reader.ready()
решая задачки на Степике столкнулся с тем что валидатор принял ответ
public static String readAsStringNew(InputStream inputStream, Charset charset) throws IOException {
StringWriter string = new StringWriter();
Reader reader = new InputStreamReader(inputStream, charset);
int b;
while ((b = reader.read()) != -1) {
string.write(b);
}
return string.toString();
}
но не принимает
public static String readAsString(InputStream inputStream, Charset charset) throws IOException {
StringWriter r = new StringWriter();
Reader reader = new InputStreamReader(inputStream, charset);
while (reader.ready()){
r.write(reader.read());
}
return r.toString();
}
Ключевое отличие как я понимаю (b = reader.read()) != -1)
и reader.ready()