Menutup Pengimbas yang Dipautkan ke System.in
Menutup Pengimbas yang dipautkan ke System.in boleh menjadi kebingungan. Walaupun merupakan amalan pengekodan yang baik untuk menutup sumber terbuka, berbuat demikian dengan Pengimbas yang disambungkan ke System.in juga menutup System.in sendiri. Ini menimbulkan persoalan: adakah terdapat cara untuk menutup Pengimbas tanpa menjejaskan System.in?
Penyelesaian
Penyelesaian paling mudah ialah menahan diri daripada menutup Pengimbas jika anda tidak berniat untuk menutup aliran asas. Dalam kebanyakan kes, adalah dinasihatkan untuk mencipta satu Pengimbas yang menyediakan keseluruhan program. Ini menghapuskan keperluan untuk membuat dan menutupnya berulang kali.
Jika atas sebab tertentu anda mesti menutup Pengimbas, satu pilihan ialah mencipta tika Pengimbas baharu dengan strim asas yang sama. Ini memisahkan kedua-dua entiti dan membolehkan anda menutup Pengimbas tanpa menjejaskan System.in.
Berikut ialah contoh:
Scanner scanner = new Scanner(System.in); // Use the scanner as needed... // Create a new scanner with the same underlying stream. Scanner newScanner = new Scanner(System.in); // Close the first scanner. scanner.close(); // Continue using the new scanner. newScanner.nextInt(); // Close the second scanner. newScanner.close();
Kaedah ini memastikan System.in kekal tidak terjejas sambil membenarkan anda untuk tutup Pengimbas asal.
Adalah penting untuk ambil perhatian bahawa mencipta berbilang tika Pengimbas boleh mempunyai implikasi prestasi. Jika prestasi membimbangkan, sebaiknya gunakan satu Pengimbas sepanjang hayat program.
Atas ialah kandungan terperinci Patutkah Saya Menutup Pengimbas yang Dipautkan ke System.in?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!