public class Solution {
public static void main(String[] args) throws IOException {
try {
URL url = new URL("https://javarush.com/api/1.0/rest/projects");
InputStream input = url.openStream();
byte[] buffer = input.readAllBytes();
for (byte text : buffer) {
System.out.print((char) text);
}
} catch (Exception exc) {
exc.printStackTrace();
}
}
}Alexander
30 уровень
Уважаемые, подскажите в каком направлении хоть двигаться? Ошибка, Программа должна выводить полученную информацию на экран.
Решен
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ирина АлымоваJava Developer в Nerdysoft
28 марта 2021, 21:41полезный
Ты считываешь байты, а хочешь вывести символы. В таком случае лучше использовать символьные потоки - обернуть ImputStream в InputStreamReader и BufferedReader, например.
Если все же хочешь работать с байтами, учитывай что конвертировать массив байт в строку необходимо немного по-другому. Если заметишь, в выводе у тебя русские буквы не отображаются корректно, например слово "лет", которое состоит из 3 символов отображено как 6 символов: ロᄉツ
- потому что эти символы занимают 2 байта памяти, а ты считываешь по одному.
Ну и потоки у тебя не закрыты, используй метод close(), или помести создание потока в try-with-resources.
+4
Alexander
29 марта 2021, 12:59
Спасибо, через Reader сделал
0