Всем привет.
Решила в итоге через new BufferedReader(new InputStreamReader(System.in));
Но не понимаю, почему не проходит валидацию по третьему пункту мой первый вариант
public class Solution {
static final int ENTER = 10; // константа равная ASCII коду enter
public static void main(String[] args) throws IOException {
BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
String n=""; // переменная, в которую буду делать построчную запись
FileInputStream inputStream = new FileInputStream(reader.readLine(););
while (inputStream.available() > 0) {
int m = inputStream.read();
n = n + (char) m; //записываю символ в строку
if (m == ENTER) { //дошла до конца строки файла
String[] stroki_2 = n.split(" "); //разбиваю строку по пробелам
if (stroki_2[0].equals(args[0])) { // смотрю первую часть до пробела (id) и сравниваю с параметром
System.out.print(n); //печать строки
}
n="";// обнуляю строку
}
}
inputStream.close();
}
}
Ольга
27 уровень
Почему валидатор не принимает, при том что все ищется?
Решен
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Павел Безумный учёный Expert
20 июля 2020, 20:14
Непосредственное получение символа по его коду при считывании из FileInputStream будет корректно работать только в том случае, если кодировка читаемого файла предполагает, что каждый символ кодируется 1 байтом и не более (ASCII). К примеру, в файле в кодировке UTF-8 символ может кодироваться одним, двумя, тремя или четырьмя байтами (то есть для получения одного символа требуется считать из потока несколько байтов). InputStreamReader, передаваемый в конструктор BufferedReader-а, решает эту проблему, автоматически декодируя байты из потока ввода в символы в соответствии с некоторым набором символов (по умолчанию это UTF-8).
0
Ольга
22 июля 2020, 09:36
большое спасибо!
0