الوقت/التاريخ الآن هو الخميس مارس 28, 2024 11:05 am

3 نتيجة بحث عن Scanner

طرق الادخال من وحدة التحكم في الجافا Java Input Console

أهلا بكم 

هناك أوقات يكون فيها من المهم بالنسبة لك الحصول على مدخلات من المستخدمين لتنفيذ برنامج معين وتوجد عدة طرق لفعل ذلك وهى طرق الادخال من خلال وحدة التحكم على النحو التالى :



  1. باستخدام فئة #BufferedReader
  2. باستخدام فئة #Scanner
  3. باستخدام فئة #Console


الآن دعونا نلقي نظرة فاحصة على هذه الأساليب واحدة تلو الأخرى.

أولا: باستخدام فئة BufferedReader


هذه هي أقدم طريقة في Java لإدخال البيانات من وحدة التحكم. تم تقديم هذه التقنية لأول مرة في الاصدار JDK 1.0. باستخدام هذه الطريقة نحتاج إلى التفاف الفئة InputStreamReader و الفئة System.in في الفئة BufferedReader .

يتم ذلك باستخدام بناء الجملة التالي:

الكود:
BufferedReader br = new BufferedReader (new InputStreamReader (System.in));


سيؤدي استخدام هذا إلى ربط الدفق القائم على الأحرف "br" بوحدة التحكم للإدخال من خلال System.in...دعونا نلقي نظرة على مثال لجعل المفهوم أكثر وضوحا.

في هذا المثال ، سوف نحصل على سلسلة من الأحرف التي تم إدخالها من المستخدم. سيعرض البرنامج الأحرف واحدة تلو الأخرى للمستخدم على الشاشة. سيستمر حتى تتم مصادفة حرف الإنهاء في السلسلة.

الكود:
import java.io.*;
class bread
{
      public static void main(String args[]) throws IOException
      {
            char ch;
            BufferedReader br = new BufferedReader(new InputStreamReader (System.in));
            System.out.println ("Enter any string of your choice (To terminate Press \'z\' ");
            do
            {
                  ch = (char) br.read ();
                  System.out.println (ch);
            } while (ch != 'z');
      }
}


الاخراج :

الوسم scanner على المنتدى منتدى مصر التقني Reading-Console-Input-in-Java-output-2

هنا ، عندما تصادف z في سلسلة الحروف ، سيتوقف البرنامج عن عرض أي أحرف أخرى يدخلها المستخدم.

الوسم scanner على المنتدى منتدى مصر التقني Reading-Console-Input-in-Java-output1


ثانيا :باستخدام فئة Scanner


تم تقديم فئة Scanner في JDK 1.5 وتم استخدامها على نطاق واسع.حيث توفر الفئة Scanner طرقًا متعددة لتيسير الطريقة التي نحصل بها على الإدخال من وحدة التحكم. يتم تعريف فئة الماسح الضوئي في java.util ، لذا تحتاج إلى استيراد الحزمة تلك أولاً.

يستخدم الماسح أيضًا System.in ويكون بناء الجملة الخاص به كما يلي:

الكود:
Scanner obj_name = new Scanner (System.in);



واليكم بعض أساليب الأداة المساعدة التى توفرها فئة Scanner كالتالي:



hasNext()تقوم بإرجاع قيمة منطقية اعتمادًا على ما إذا كان يتوفر أي رمز مميز أم لا. تقوم بإرجاع قيمة حقيقية true في حالة توفر أي رمز مميز. إلا أنه سيعود قيمة false .
hasNextInt()تقوم بإرجاع صحيح إذا كانت قيمة int قيد القراءة. إلا أنه سيعود قيمة خاطئة
hasNextFloat()تقوم بإرجاع صحيح إذا كانت قيمة تعويم قيد القراءة. إلا أنه سيعود قيمة خاطئة
hasNextBoolean()تقوم بإرجاع صحيح إذا كانت القيمة المنطقية قيد القراءة. إلا أنه سيعود قيمة خاطئة .
next()يقرأ الرمز التالي كسلسلة.
nextLine()يقرأ سطر الإدخال التالي كسلسلة.
nextInt()يقرأ قيمة الإدخال التالية كعدد صحيح.
nextDouble()يقرأ قيمة الإدخال التالية كقيمة مزدوجة.

دعونا نلقي نظرة على مثال لفهم المفهوم بطريقة أفضل. في هذا المثال ، سوف نقرأ الأرقام من المستخدم وسنجد مجموع هذه الأرقام ونعرض النتيجة عليه.

الكود:
import java.util.*;
class scanner_eg
{
      public static void main(String args[])
      {
            Scanner obj = new Scanner (System.in);
            double total = 0;
            System.out.println ("Enter numbers to add. Enter any string to end list.");
            while (obj.hasNext())
            {
                  if (obj.hasNextDouble())
                  {
                        total += obj.nextDouble();
                  }
                  else
                  {
                        break;
                  }
            }
            System.out.println ("Sum of the numbers is " + total);
      }
}


الاخراج :

الوسم scanner على المنتدى منتدى مصر التقني Usin-Scanner-Class-Output

ثالثا : باستخدام فئة Console


هذه طريقة أخرى لقراءة إدخال المستخدم من وحدة التحكم في Java. تم تقديم طريقة قراءة إدخال المستخدم هذه في JDK 1.6. يستخدم هذا الأسلوب أيضًا System.in لقراءة الإدخال.

هذه الطريقة هي الأنسب لقراءة المدخلات التي لا تتطلب صدى إدخال المستخدم مثل قراءة كلمات مرور المستخدم. تقوم هذه التقنية بقراءة مدخلات المستخدم دون تكرار الأحرف التي أدخلها المستخدم.

يتم تعريف فئة وحدة التحكم في فئة java.io والتي يجب استيرادها قبل استخدام فئة وحدة التحكم.

دعونا نفكر في مثال .

الكود:
import java.io.*;
class consoleEg
{
      public static void main(String args[])
      {
            String name;
            System.out.println ("Enter your name: ");
            Console c = System.console();
            name = c.readLine();
            System.out.println ("Your name is: " + name);
      }
}


الاخراج :

الوسم scanner على المنتدى منتدى مصر التقني Using-console-class
من طرف زهراء
في السبت يناير 04, 2020 4:37 pm
 
ابحث في: أساسيات اللغة Java Basics
موضوع: طرق الادخال من وحدة التحكم في الجافا Java Input Console
المساهمات: 0
مشاهدة: 1509

التعامل مع الملفات فى الجافا 5_الطرق المختلفة لقراءة ملف نصي سطر سطر Java Read File to String

فى مقالات سابقة تعلمنا كيفية إنشاء ملف نصى و كيفية الكتابة الية أما فى هذا المقال سنلقى نظرة على كيفية قراءة ملف نصي وذلك بعدة طرق :



1_باستخدام BufferedReader 


يمكننا استخدام الفئة java.io.BufferedReader   ومن خلال الطريقة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] () لقراءة ملف نصى سطر بسطر. هذه الطريقة تقوم بإرجاع قيمة فارغة عند الوصول إلى نهاية الملف. ....ويتم استخدامها على النحو التالى :


الكود:


package com.journaldev.readfileslinebyline;



import java.io.BufferedReader;

import java.io.FileReader;

import java.io.IOException;



public class ReadFileLineByLineUsingBufferedReader {



 public static void main(String[] args) {

 BufferedReader reader;

 try {// انشاء كائن جديد من الفئة و تمرير مسار الملف النصى 

 reader = new BufferedReader(new FileReader(

 "/Users/pankaj/Downloads/myfile.txt"));

 String line = reader.readLine();
      
                   // حلقة تكرارية للمرور على كافة اسطر الملف النصي 

 while (line != null) {

 System.out.println(line);

 //قراءة السطر التالى 

 line = reader.readLine();

 }

 reader.close();

 } catch (IOException e) {

 e.printStackTrace();

 }

 }

}





2_ باستخدام الفئة Files

تحتوى الفئة java.nio.file.Files  على الطريقة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] التى تقوم بقراءة كافة اسطر الملف النصي و تحتاج فى ذلك الى قائمة نصية و ذلك على النحو التالى :

الكود:

package com.journaldev.readfileslinebyline;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;

public class ReadFileLineByLineUsingFiles {

 public static void main(String[] args) {
 try {
 List<String> allLines = Files.readAllLines(Paths.get("/Users/pankaj/Downloads/myfile.txt"));
 for (String line : allLines) {
 System.out.println(line);
 }
 } catch (IOException e) {
 e.printStackTrace();
 }
 }

}




3_باستخدام الفئة RandomAccessFile

يمكننا استخدام [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] لفتح ملف في وضع القراءة ، ثم استخدام طريقة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] الخاصة به لقراءة الملفات بسطر وذلك على النحو التالى :

الكود:

package com.journaldev.readfileslinebyline;

import java.io.IOException;
import java.io.RandomAccessFile;

public class ReadFileLineByLineUsingRandomAccessFile {

 public static void main(String[] args) {
 try {
 RandomAccessFile file = new RandomAccessFile("/Users/pankaj/Downloads/myfile.txt", "r");
 String str;
 while ((str = file.readLine()) != null) {
 System.out.println(str);
 }
 file.close();
 } catch (IOException e) {
 e.printStackTrace();
 }
 }

}



4_ باستخدام الفئة Scanner

يمكننا استخدام فئة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] لفتح ملف ثم قراءة المحتوى الخاص به سطرا سطرا.وذلك على النحو التالى :

الكود:

package com.journaldev.readfileslinebyline;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class ReadFileLineByLineUsingScanner {

 public static void main(String[] args) {
 try {
 Scanner scanner = new Scanner(new File("/Users/pankaj/Downloads/myfile.txt"));
 while (scanner.hasNextLine()) {
 System.out.println(scanner.nextLine());
 }
 scanner.close();
 } catch (FileNotFoundException e) {
 e.printStackTrace();
 }
 }

}
من طرف vbcoder
في الإثنين أكتوبر 28, 2019 9:04 pm
 
ابحث في: التعامل مع حزم الجافا java package
موضوع: التعامل مع الملفات فى الجافا 5_الطرق المختلفة لقراءة ملف نصي سطر سطر Java Read File to String
المساهمات: 0
مشاهدة: 1861

[Java] التعامل مع كائن الادخال Scanner

أحد طرق الادخال فى الجافا استخدام الكائن #Scanner والذى يمكنك استخدامة بسهولة لقراءة المدخلات من المستخدم فى البيئة غير الرسومية ويتم استخدامة بخطوات بسيطة على النحو التالى :

1_اسيراد الفئة #Scanner على النحو التالى :

الكود:
import java.util.Scanner;


2_إنشاء كائن جديد من الفئة #Scanner ثم تعيين قيمته لمتغير. System.in

الكود:
Scanner input = new Scanner(System.in);


3_لقراءة المدخلات يمكنك استخدام الاساليب المختلفة للكائن Scanner ...فمثلا لقراءة نص كلمة واحدة فقط يمكنك استخدام الاسلوب #next و لقراءة جملة يمكنك استخدام الاسلوب #nextLine أما لقراءة رقم صحيح يمكنك استخدام الاسلوب #nextInt وبالمثل ، يقرأ الأسلوب #nextDouble الارقام العشرية على النحو التالى :

الكود:
import java.util.Scanner;

public class Javaapp {
 
    public static void main(String[] args) {
        
        Scanner input = new Scanner(System.in);
        
        String name ;
        int age ;
        
        System.out.print("Enter your name : ");
        name = input.next();
        
        System.out.print("Enter your age  : ");
        age = input.nextInt();
        
        System.out.println();
        System.out.println("Your name : "+name);
        System.out.println("Your age  : "+age);
        input.close();
    }
}
من طرف NEXT
في الأربعاء مارس 13, 2019 7:01 pm
 
ابحث في: واجهة المستخدم الرسومية Java Swing
موضوع: [Java] التعامل مع كائن الادخال Scanner
المساهمات: 1
مشاهدة: 827

الرجوع الى أعلى الصفحة

انتقل الى: