นี่คือหลายวิธีในการอ่านข้อมูลจากคอนโซลใน Java และตรวจสอบในภายหลัง!
(1) JDK 1.4 (JDK 1.5 และ JDK 1.6 ก็เข้ากันได้กับวิธีนี้ด้วย)
Public Class TestConsole1 {โมฆะคงที่สาธารณะหลัก (String [] args) {string str = readdataFromConsole ("โปรดป้อนสตริง :); system.out.println (" ข้อมูลจากคอนโซล: + str); } / ** * ใช้ inputStreamReader และ system.in ในการอ่านข้อมูลจากคอนโซล * * @param พรอมต์ * * @return สตริงอินพุต * / สตริงคงที่ส่วนตัว readdataFromConsole (พรอมต์สตริง) {bufferedreader br = ใหม่ bufferedreader string str = null; ลอง {system.out.print (พรอมต์); str = br.readline (); } catch (ioexception e) {e.printstacktrace (); } return str; -(2) JDK 1.5 (อ่านด้วยเครื่องสแกน)
Public Class TestConsole2 {โมฆะคงที่สาธารณะหลัก (String [] args) {string str = readDataFromConsole ("โปรดป้อนสตริง:"); System.out.println ("ข้อมูลจากคอนโซล:" + str); } / ** * ใช้ java.util.scanner เพื่ออ่านข้อมูลจากคอนโซล * * @param พรอมต์ * * @return สตริงอินพุต * / สตริงคงที่ส่วนตัว ReadDataFromConsole (พรอมต์สตริง) {เครื่องสแกนสแกนเนอร์ = สแกนเนอร์ใหม่ (System.in); System.out.print (พรอมต์); return scanner.nextline (); -สแกนเนอร์ยังสามารถสแกนไฟล์อ่านข้อมูลภายในและแปลงเป็นประเภทที่คุณต้องการได้อย่างง่ายดายตัวอย่างเช่นการรวมข้อมูลเช่น "2 2.2 3.3 3.33 4.5 ทำ" ดูรหัสต่อไปนี้:
Public Class TestConsole4 {โมฆะคงที่สาธารณะหลัก (String [] args) พ่น IOException {fileWriter fw = fileWriter ใหม่ ("num.txt"); fw.write ("2 2.2 3.3 3.33 4.5 เสร็จแล้ว"); fw.close (); System.out.println ("ผลรวมคือ"+scanfileforsum ("num.txt")); } สาธารณะสแตติกแบบสแตติกสองครั้ง scanfileforsum (ชื่อไฟล์สตริง) พ่น IOException {สองผลรวม = 0.0; filereader fr = null; ลอง {fr = filereader ใหม่ (ชื่อไฟล์); สแกนเนอร์สแกนเนอร์ = สแกนเนอร์ใหม่ (FR); ในขณะที่ (scanner.hasnext ()) {if (scanner.hasnextdouble ()) {sum = sum + scanner.nextdouble (); } else {string str = scanner.next (); if (str.equals ("เสร็จสิ้น")) {break; } else {โยน runtimeException ใหม่ ("รูปแบบไฟล์ผิด!"); }}}} catch (filenotFoundException e) {โยน runtimeException ใหม่ ("ไฟล์" + filename + "ไม่พบ!"); } ในที่สุด {ถ้า (fr! = null) fr.close (); } return sum; -(3) JDK 1.6 (ใช้ java.io.console สำหรับการอ่าน)
JDK6 จัดให้มีคลาส java.io.console โดยเฉพาะสำหรับการเข้าถึงอุปกรณ์คอนโซลที่ใช้อักขระ
หากโปรแกรมของคุณต้องการโต้ตอบกับ CMD ภายใต้ Windows หรือ Terminal ภายใต้ Linux คุณสามารถใช้คลาสคอนโซลเพื่อทำ (คล้ายกับ System.in และ System.out)
แต่เราไม่ได้รับคอนโซลที่มีอยู่เสมอไม่ว่าจะเป็นคอนโซลที่มีอยู่หรือไม่นั้นขึ้นอยู่กับแพลตฟอร์มพื้นฐานและวิธีการเรียก JVM
หาก JVM เริ่มต้นในบรรทัดคำสั่งแบบโต้ตอบ (เช่น Windows CMD) และอินพุตและเอาต์พุตจะไม่ถูกเปลี่ยนเส้นทางไปยังสถานที่อื่นคุณจะได้รับอินสแตนซ์คอนโซลที่มีอยู่
เมื่อใช้ IDE อินสแตนซ์คอนโซลไม่สามารถรับได้ เหตุผลก็คือในสภาพแวดล้อม IDE อินพุตมาตรฐานและกระแสเอาต์พุตจะถูกเปลี่ยนเส้นทางซึ่งหมายความว่าอินพุตและเอาต์พุตของคอนโซลระบบจะถูกเปลี่ยนเส้นทางไปยังคอนโซล IDE
Public Class TestConsole3 {โมฆะคงที่สาธารณะหลัก (String [] args) {string str = readDataFromConsole ("โปรดป้อนสตริง:"); System.out.println ("ข้อมูลจากคอนโซล:" + str); } / ** * ใช้ java.io.console เพื่ออ่านข้อมูลจากคอนโซล * * @param พรอมต์ * * @return อินพุตสตริง * / สตริงคงที่ส่วนตัว readdataFromConsole (พรอมต์สตริง) {คอนโซลคอนโซล = system.console (); if (console == null) {โยนใหม่ unlismlestateException ("คอนโซลไม่สามารถใช้ได้!"); } return console.readline (พรอมต์); -คุณสมบัติอีกประการหนึ่งของคลาสคอนโซลคือการประมวลผลอักขระความปลอดภัยเช่นรหัสผ่าน (โดยไม่ต้องป้อนข้อมูลเสียงก้อง) ให้วิธีการ readpassword () เป็นพิเศษดูรหัสต่อไปนี้สำหรับแอปพลิเคชันเฉพาะ:
Public Class TestConsole5 {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {คอนโซลคอนโซล = System.console (); if (console == null) {โยนใหม่ unlismlestateException ("คอนโซลไม่สามารถใช้ได้!"); } ในขณะที่ (จริง) {string username = console.readline ("ชื่อผู้ใช้:"); char [] password = console.readpassword ("รหัสผ่าน:"); if (username.equals ("chris") && string.valueof (รหัสผ่าน) .equals ("gohead")) {console.printf ("ยินดีต้อนรับสู่ Java Application %1 $ s./n", ชื่อผู้ใช้); // ควรล้างอาร์เรย์ทันทีหลังจากใช้เพื่อลดเวลาในหน่วยความจำและปรับปรุงรหัสผ่านความปลอดภัย = null; System.Exit (-1); } else {console.printf ("ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง/n"); -ข้างต้นเป็นบทสรุปของหลายวิธีในการอ่านข้อมูลจากคอนโซลโดยตัวแก้ไข ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคนและสนับสนุน wulin.com เพิ่มเติม ~