В нем говорится, что процесс завершен, но вывода нет

#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() является конструктором, а не методом.