برنامج المثال:
1. استخدم الماسح الضوئي لقراءة البيانات الصحيحة أو العائمة من لوحة المفاتيح
2. استخدم BufferedReader لقراءة سلسلة من لوحة المفاتيح وكتابتها في الملف abc.txt
وصف فئة الماسح الضوئي JDK1.5
الماسح الضوئي عبارة عن فئة جديدة تمت إضافتها في SDK1.5، ولكن يمكنك استخدام هذه الفئة لإنشاء كائن.
قارئ الماسح الضوئي = الماسح الضوئي الجديد (System.in)؛
ثم يستدعي كائن القارئ الطرق (الوظائف) التالية لقراءة أنواع البيانات المختلفة التي أدخلها المستخدم في سطر الأوامر:
next.Byte(),nextDouble(),nextFloat,nextInt(),nextLine(),nextLong(),nextShot()
استخدم الأسلوب nextLine() لإدخال سطر قد يحتوي على مسافات. إذا كنت تقرأ كلمة، فيمكنك استدعاء الأسلوب .next()
3. الفرق بين الماسح الضوئي و BufferedReader
عند إدخال البيانات في برنامج في وضع سطر الأوامر، يمكننا استخدام كائن سلسلة الإدخال القياسي System.in، ومع ذلك، فإننا لا نستخدمه غالبًا بشكل مباشر لأن طريقة القراءة التي يوفرها System.in يمكنها قراءة كلمة واحدة فقط في كل مرة. قسم من البيانات، وما نستخدمه عادة هو قراءة سلسلة أو رقم، وبالتالي فإن الوظائف التي توفرها طريقة القراءة ليست ذات فائدة كبيرة بالنسبة لنا.
في Java SE 6، يمكنك استخدام فئة Scanner للحصول على إدخال المستخدم. توجد فئة Scanner في حزمة java.util. إذا كنت تريد استخدام Scanner للحصول على إدخال المستخدم، فيجب عليك إضافة import java.util.Scanner؛ عبارة .import تتمثل الوظيفة في إخبار المترجم أنك ستستخدم فئة Scanner في حزمة java.util.
دعونا نلقي نظرة على مثال:
قم بتشغيل البرنامج أعلاه وسترى أنه سيتم عرض السلسلة التي أدخلتها كما هو أدناه.
دعونا نلقي نظرة على معنى كل عبارة في هذا البرنامج:
الجديد يعني إنشاء كائن. في البرنامج، يعني الجديد إنشاء فحص كائن لفئة الماسح الضوئي، ولكن عند إنشاء كائن لفئة الماسح الضوئي، تحتاج إلى استخدام System.in كمعلمة خاصة به. في داعم الكائن، System.in، يحصل على المحتوى المُدخل من قبل المستخدم ويسلمه إلى الماسح الضوئي لإجراء بعض المعالجة.
يتم توفير عدة طرق في فئة الماسح الضوئي:
التالي (): احصل على سلسلة؛
nextInt (): تحويل السلسلة التي تم الحصول عليها إلى عدد صحيح من النوع int؛
nextFloat(): تحويل السلسلة التي تم الحصول عليها إلى نوع عائم؛
nextBoolean(): تحويل السلسلة التي تم الحصول عليها إلى نوع منطقي؛
من السهل جدًا استخدام الماسح الضوئي للحصول على إدخال المستخدم، لكن الماسح الضوئي يحصل على الإدخال بناءً على حرف المسافة، بما في ذلك مفتاح المسافة ومفتاح Tab ومفتاح Enter. عند الضغط على أي من هذه المفاتيح، سيعود الماسح الضوئي إلى الإدخال التالي تدخل عندما تكون هناك مسافات في منتصف المحتوى، من الواضح أن استخدام الماسح الضوئي لا يمكنه الحصول على السلسلة التي تدخلها بشكل كامل. في هذا الوقت، يمكننا التفكير في استخدام فئة BufferedReader للحصول على الإدخال في الواقع في الإصدارات 1.4 والإصدارات السابقة، لم يتم توفير طريقة Scanner بعد، ونستخدم أيضًا BufferReader عند الحصول على الإدخال.
توجد فئة BufferedReader في حزمة java.io، لذا لاستخدام هذه الفئة، يجب عليك تقديم حزمة java.io: import java.io.BufferedReader.
يجب أن يتعامل أسلوب readLine () الذي يستخدم كائن BufferedReader مع استثناء java.io.IOException (استثناء).
يعد استخدام BufferedReader للحصول على المدخلات أكثر تعقيدًا من حيث الفهم، ولكن هذه الطريقة ثابتة، ما عليك سوى اتباع نفس الطريقة قبل كل استخدام.
BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
نص السلسلة = buffer.readLine();
ستعيد طريقة readLine() جميع الأحرف التي أدخلها المستخدم قبل الضغط على مفتاح Enter، باستثناء الحرف الأخير الذي تم إرجاعه من مفتاح Enter.
برنامج العينة الكامل هو كما يلي:
}
4. كما هو موضح في البرنامج التالي: class StringTest
أدخل المحتوى بعد بيان التنفيذ: java + اسم الفئة، وسيتم استلامه بواسطة args.
لأن args تتلقى معلمات سطر الأوامر.