Исключение выброса буферизованного считывателя

Я хочу напечатать привет t количество раз. Итак, я написал этот фрагмент кода.


import java.util.*;
import java.io.*;

class Buff
{
    public static void main(String args[])
    {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        
        int t = Integer.parseInt(br.readLine());
        while(t-->0)
            bw.write("hello");

    }
}

Выводит исключение


Buff.java:11: error: unreported exception IOException; must be caught or declared to be thrown
                String t = br.readLine();
                                      ^
Buff.java:14: error: unreported exception IOException; must be caught or declared to be thrown
                        bw.write("hello");

Пожалуйста, помогите !!! PS: Это не помогает, даже если я поставлю исключение IOException


person akhil shekkari    schedule 03.07.2020    source источник
comment
PS: Это не помогает, даже если я поставлю исключения IOException - А где вы разместили эти выбросы? Потому что public static void main(String args[]) throws IOException {...} должен работать на вас.   -  person Slaw    schedule 03.07.2020


Ответы (1)


Вы должны перехватить возможные исключения (в данном случае IOException).

Базовый синтаксис выглядит так:

try {
    //Your code here
}
catch(IOException e) {
    //What do you want to do when something went wrong?
}

В вашем случае будет работать следующий код:

import java.util.*;
import java.io.*;

class Buff
{
    public static void main(String args[])
    {
        try {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
            
            int t = Integer.parseInt(br.readLine());

            //Closing Readers and Writers when not needed anymore is good-practice
            br.close();

            //"-->" wasn't working for me in this case
            while(t > 0) {
                bw.write("hello\n");
                t--;
            }
            bw.flush();
            bw.close();
        }

        //Catching possible exceptions
        catch(IOException e) {
            e.printStackTrace();
        }

    }
}
person Philipp Wilhelm    schedule 03.07.2020