У меня есть простая домашняя работа, но я нашел небольшую проблему с закрытием входного потока. Проще говоря, я должен создать приложение «список» в Java, чтобы правильно использовать полиморфизм. Поэтому у меня есть контакт класса и подкласс Private (контакт). В обоих классах существует способ изменения значения переменных.Поток закрыт и не открыт повторно - Java
public void modify() throws IOException {
System.out.println("Previously name: " + name);
System.out.println("Insert new name");
try(InputStreamReader ir = new InputStreamReader(System.in);
BufferedReader in = new BufferedReader(ir)) {
name= in.readLine();
System.out.println("You've changed the name to: "+ name);
System.out.println("Previously surname: " + surname);
System.out.println("Insert new surname");
surname= in.readLine();
System.out.println("You've changed the surname to: "+ surname);
System.out.println("Previously e-mail: " + email);
System.out.println("Insert new e-mail");
email = in.readLine();
System.out.println("You've changed the e-mail to: "+ email); }
}
Это Контактная метод, который не создает проблем
@Override
public void modify() throws IOException {
super.modifica();
System.out.println("Numero di cellulare precedente: " + cell);
System.out.println("Inserire nuovo numero");
try (InputStreamReader ir = new InputStreamReader(System.in);
BufferedReader in = new BufferedReader(ir)) {
cell = in.readLine();
System.out.println("Hai cambiato il numero in: "+ cell);
System.out.println("Contatto skype precedente: " + skype);
System.out.println("Inserire nuovo contatto");
skype = in.readLine();
System.out.println("Hai cambiato il contatto in: "+ skype);
}
}
Вместо этого переопределение метода в частном порядке. В основном я создаю объект Private, и я вызываю метод изменения. Я могу вставить имя, фамилию и электронную почту без проблем, тогда метод выдает исключение IO, потому что поток закрыт. Я не могу понять, почему у меня такая проблема. Я думаю, что поток закрыт попыткой с ресурсами в первом коде, но затем он открывается во втором коде другой попыткой с ресурсами. Возможно, что-то в моей идее ошибочно.
Может быть, вы должны узнать о 'java.util.Scanner'. Вы можете начать здесь: http://stackoverflow.com/a/11871792/4791599 –
Спасибо! Существуют ли различия в возможностях и управлении памятью между сканером и BufferedReader? – Bondye
Возможный дубликат [Closing BufferedReader и System.in] (http://stackoverflow.com/questions/8203981/closing-bufferedreader-and-system-in) –