Rumah >Java >javaTutorial >Patutkah Saya Menutup Pengimbas yang Dipautkan ke System.in?

Patutkah Saya Menutup Pengimbas yang Dipautkan ke System.in?

Linda Hamilton
Linda Hamiltonasal
2024-12-20 18:27:20914semak imbas

Should I Close a Scanner Linked to System.in?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn