#java #process
Вопрос:
Я новичок в java, и у меня возникли небольшие проблемы с моим кодом. Там нет ошибки и тому подобного, он просто продолжает говорить, что процесс завершен, но вывод не был отображен. Имя файла правильное, как я проверил.
импортируйте java.nio.файл.; импорт java.io.;
public class GuessingGame {
public GuessingGame() {
String filename = "C:\Users\angela\Documents\words.txt";
Path path = Paths.get(filename.toString());
try {
InputStream input = Files.newInputStream(path);
BufferedReader read = new BufferedReader(new InputStreamReader(input));
String word = null;
while((word = read.readLine()) !=null) {
System.out.println(word);
}
}
catch(IOException ex) {
}
}
public static void main (String[] args) {
new GuessingGame();
}
}
Комментарии:
1. не упустите это исключение. Пожалуйста, поставьте печать, чтобы подтвердить, произошло ли исключение.
2. Понял, спасибо
Ответ №1:
Вы игнорируете исключение и не закрываете файл. Сохраните немного текста , используя встроенное input.transferTo()
средство для копирования файла System.out
, и передайте исключение для обработки вызывающему, добавив throws IOException
в конструктор и main
.
Замените блок try-catch на этот блок try-with-resources, который обрабатывает закрытие файла после использования:
try (InputStream input = Files.newInputStream(path)) {
input.transferTo(System.out) ;
}
Ответ №2:
Вам удалось вызвать предполагаемый класс, но вам также необходимо было указать конкретную функцию, которую вы объявили в функции. Вот так: public static void main (String[] args) { GuessingGame gg = new GuessingGame; gg.GuessingGame(); }
Комментарии:
1.
new GuessingGame();
правильно, так как это конструктор, ваше предложение не будет компилироваться.2.
gg.GuessingGame()
это неверно.GuessingGame()
является конструктором, а не методом.