فيما يلي عدة طرق لقراءة المعلومات من وحدة التحكم في جافا ، والتحقق منها لاحقًا!
(1) JDK 1.4 (JDK 1.5 و JDK 1.6 متوافقة أيضًا مع هذه الطريقة)
الفئة العامة testConsole1 {public static void main (string [] args) {String str = readDataFromConsole ("يرجى إدخال سلسلة :) ؛ system.out.println (" المعلومات من وحدة التحكم: + str) ؛ } / ** * استخدم inputStreamReader و System.in لقراءة البيانات من Console * * param proft * * regurn string * / private static readdatafromconsole (سلسلة السلسلة) {bufferreader br = new bufferedReader (new inputstreamreader (system.in)) ؛ سلسلة str = null ؛ حاول {system.out.print (proper) ؛ str = br.readline () ؛ } catch (ioException e) {E.PrintStackTrace () ؛ } إرجاع str ؛ }}(2) JDK 1.5 (اقرأ مع الماسح الضوئي)
الفئة العامة TestConsole2 {public static void main (string [] args) {string str = readDataFromConsole ("الرجاء إدخال سلسلة:") ؛ System.out.println ("المعلومات من وحدة التحكم:" + str) ؛ } / ** * استخدم java.util.scanner لقراءة البيانات من Console * * param prester * * regurn string * / private static string readDataFromConsole (string prester) {scanner scanner = new scanner (system.in) ؛ system.out.print (proper) ؛ إرجاع Scanner.NextLine () ؛ }}يمكن للماسح الضوئي أيضًا مسح الملفات بسهولة ، وقراءة المعلومات الموجودة بداخلها وتحويلها إلى النوع الذي تريده ، على سبيل المثال ، جمع البيانات مثل "2 2.2 3.3 3.33 4.5" ، راجع الرمز التالي:
الفئة العامة testconsole4 {public static void main (string [] args) يلقي ioException {filewRiter fw = new filewriter ("num.txt") ؛ fw.write ("2 2.2 3.3 3.33 4.5 Done") ؛ fw.close () ؛ system.out.println ("sum هو"+scanfileforsum ("num.txt")) ؛ } static static double scanfileforsum (اسم ملف السلسلة) يلقي ioException {double sum = 0.0 ؛ FileReader fr = null ؛ حاول {fr = new fileReader (اسم الملف) ؛ الماسح الضوئي = الماسح الضوئي الجديد (FR) ؛ بينما (scanner.hasnext ()) {if (scanner.hasNextDouble ()) {sum = sum + scanner.nextDouble () ؛ } آخر {String str = scanner.next () ؛ if (str.equals ("done")) {break ؛ } آخر {رمي new RunTimeException ("تنسيق الملف خاطئ!") ؛ }}}} catch (fileNotfoundException e) {رمي new runTimeException ("file" + filename + "غير موجود!") ؛ } أخيرًا {if (fr! = null) fr.close () ؛ } إرجاع مجموع ؛ }}(3) JDK 1.6 (استخدم java.io.console للقراءة)
يوفر JDK6 فئة java.io.console خصيصًا للوصول إلى أجهزة وحدة التحكم القائمة على الأحرف.
إذا كان برنامجك يريد التفاعل مع CMD تحت Windows أو Terminal تحت Linux ، فيمكنك استخدام فئة وحدة التحكم للقيام بذلك. (على غرار system.in و system.out)
لكننا لا نحصل دائمًا على وحدة التحكم المتوفرة ، سواء كانت وحدة التحكم في JVM تعتمد على النظام الأساسي الأساسي وكيف يتم استدعاء JVM.
إذا تم بدء تشغيل JVM على سطر أوامر تفاعلي (مثل Windows CMD) ولم يتم إعادة توجيه الإدخال والمخرجات إلى مكان آخر ، فيمكنك الحصول على مثيل وحدة تحكم متاح.
عند استخدام IDE ، لا يمكن الحصول على مثيل وحدة التحكم. والسبب هو أنه في بيئة IDE ، يتم إعادة توجيه تدفقات الإدخال والإخراج القياسية ، مما يعني أن المدخلات والمخرجات على وحدة تحكم النظام يتم إعادة توجيهها إلى وحدة تحكم IDE
الفئة العامة testconsole3 {public static void main (string [] args) {string str = readDataFromConsole ("الرجاء إدخال سلسلة:") ؛ System.out.println ("المعلومات من وحدة التحكم:" + str) ؛ } / ** * استخدم java.io.console لقراءة البيانات من Console * * param prester * * regurn string * / private static string readDataFromConsole (string prester) {console console = system.console () ؛ if (console == null) {رمي جديد alficalstateException ("وحدة التحكم غير متوفرة!") ؛ } console.readline (proper) ؛ }}ميزة أخرى لفئة وحدة التحكم هي أنها تعالج أحرف الأمان على وجه التحديد مثل كلمات المرور (بدون إدخال صدى). قم بتوفير طريقة ReadPassword () خصيصًا ، راجع الكود التالي للتطبيق المحدد:
الفئة العامة testconsole5 {public static void main (string [] args) {console console = system.console () ؛ if (console == null) {رمي جديد alficalstateException ("وحدة التحكم غير متوفرة!") ؛ } بينما (صحيح) {String username = console.ReadLine ("اسم المستخدم:") ؛ char [] password = console.ReadPassword ("كلمة المرور:") ؛ if (username.equals ("chris") && string.valueof (password) .equals ("gohead")) {console.printf ("مرحبًا بك في تطبيق java ٪ 1 $ s./n" ، اسم المستخدم) ؛ // يجب مسح الصفيف فور استخدامها لتقليل وقتها في الذاكرة وتعزيز كلمة مرور الأمان = فارغة ؛ System.exit (-1) ؛ } else {console.printf ("اسم مستخدم غير صالح أو كلمة مرور ./n") ؛ }}}}}ما سبق هو ملخص عدة طرق لقراءة البيانات من وحدة التحكم بواسطة المحرر. آمل أن يكون ذلك مفيدًا للجميع ودعم wulin.com أكثر ~