JavaRush /Java Blog /Random-ID /Ulangi untuk coba-tangkap
dimaMJ
Level 25
Craiova

Ulangi untuk coba-tangkap

Dipublikasikan di grup Random-ID
Programnya sederhana, pengguna memasukkan nama file, jika file tersebut ada, dibaca, dll., jika tidak, maka pengecualian dipicu dan pengguna harus memasukkan nama file lagi, dan seterusnya hingga nama file benar. Berikut kodenya: public class Solution { public static void main(String[] args) throws Exception { InputStream inStream = filego(); OutputStream outStream = new PrintStream(System.out); while(inStream.available()>0) { int data = inStream.read(); outStream.write(data); } inStream.close(); outStream.close(); } public static InputStream filego() throws Exception { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String FileName = reader.readLine(); InputStream inStream = null ; try { inStream = new FileInputStream(FileName); } catch (Exception e) { System.out.println("Файл не найден, введите еще раз"); filego(); } return inStream; } } Saat memulai program, ketika saya memasukkan nama yang salah, semuanya berfungsi, ketika saya memasukkan nama yang benar, ia memunculkan Pengecualian di utas "utama" java.lang.NullPointerException, yaitu, karena alasan tertentu ia mengembalikan null , apa yang saya lakukan salah, mungkin mata saya berkabut atau ada yang salah, saya mengerti, tolong beri tahu saya) Saya benar-benar ingin mengetahui cara membuat loop coba-tangkap dengan benar. Saya mencobanya tanpa metode terpisah, hanya menggunakan while, tidak ada hasil yang bagus juga)
Dan apakah saya menentukan jenis nilai pengembalian dengan benar?
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION