קרא וכתוב קלט משתמש ב- Java

1. הקדמה

במדריך מהיר זה, אנו להדגים מספר דרכים להשתמש בקונסולה לצורך קלט ופלט של משתמשים ב- Java.

נבחן כמה שיטות של ה- סוֹרֵק בכיתה לטיפול בקלט ואז נציג כמה פלט פשוט באמצעות System.out.

לבסוף נראה כיצד להשתמש ב- לְנַחֵם מחלקה, זמין מאז Java 6, גם לקלט וגם לפלט של המסוף.

2. קריאה מ System.in

לדוגמאות הראשונות שלנו, אנו להשתמש ב סוֹרֵק בכיתה ב java.util חבילה להשגת קלט ממנה System.in - זרם הקלט "הסטנדרטי":

סורק סורק = סורק חדש (System.in);

בואו להשתמש ב nextLine () שיטה לקרוא שורה שלמה של קלט כ- חוּט ולהתקדם לשורה הבאה:

שם מחרוזת שם משפחה = scanner.nextLine ();

אנחנו יכולים גם להשתמש ב הַבָּא() שיטה כדי לקבל את אסימון הקלט הבא מהזרם:

מין מחרוזת = scanner.next ();

אם אנו מצפים לתשומות מספריות, נוכל לעשות זאת להשתמש nextInt () כדי לקבל את הקלט הבא בתור int פרימיטיבי, וכמו כן אנו יכולים להשתמש nextDouble () לקבל משתנה מסוג לְהַכפִּיל:

int age = scanner.nextInt (); גובה כפול = scanner.nextDouble ();

ה סוֹרֵק הכיתה מציעה גם hasNext_Prefix () שיטות שחוזרות נָכוֹן אם ניתן לפרש את האסימון הבא כסוג נתונים תואם.

לדוגמא, אנו יכולים להשתמש hasNextInt ()שיטה לבדוק אם ניתן לפרש את האסימון הבא כמספר שלם:

בעוד (scanner.hasNextInt ()) {int nmbr = scanner.nextInt (); // ...}

כמו כן, אנו יכולים להשתמש ב- hasNext (תבנית תבנית) שיטה ל בדוק אם אסימון הקלט הבא תואם לתבנית:

אם (scanner.hasNext (Pattern.compile ("www.baeldung.com"))) {// ...}

מלבד השימוש ב- סוֹרֵק מעמד, אנחנו יכולים גם להשתמש ב- קֶלֶטStreamReader עם System.in כדי לקבל את הקלט מהקונסולה:

BufferedReader buffReader = חדש BufferedReader (InputStreamReader חדש (System.in));

ואז נוכל לקרוא קלט ולנתח אותו למספר שלם:

int i = Integer.parseInt (buffReader.readLine ()); 

3. כתיבה ל System.out

עבור פלט קונסולה, אנו יכולים להשתמש System.out - מופע של PrintStream מעמד, שהוא סוג של OutputStream.

בדוגמה שלנו, נשתמש בפלט המסוף כדי לספק הנחיה להזנת משתמשים ולהציג הודעה סופית למשתמש.

בואו להשתמש ב println () שיטת הדפסה א חוּט ולסיים את הקו:

System.out.println ("אנא הזן את שמך ואת שם המשפחה שלך:");

לחלופין, אנחנו יכולים להשתמש ב הדפס() שיטה, שעובדת בדומה ל- println (), אבל בלי לסיים את הקו:

System.out.print ("שיהיה לך טוב"); System.out.print ("אחד!");

4. באמצעות לְנַחֵם מחלקה לקלט ופלט

ב- JDK 6 ואילך נוכל להשתמש ב- לְנַחֵם כיתה מ java.io חבילה לקרוא ולכתוב למסוף.

להשיג א לְנַחֵם להתנגד, נתקשר System.console ():

קונסולת קונסולה = System.console ();

לאחר מכן, בואו נשתמש ב- קריאת שורה() שיטת ה- לְנַחֵם כיתה ל כתוב שורה למסוף ואז קרא שורה מהקונסולה:

מחרוזת progLanguauge = console.readLine ("הזן את שפת התכנות המועדפת עליך:"); 

אם עלינו לקרוא מידע רגיש, כגון סיסמה, נוכל להשתמש ב- readPassword () שיטה ל בקש ממשתמש להזין סיסמה ולקרוא את הסיסמה מהקונסולה עם הדהוד מושבת:

char [] pass = console.readPassword ("לסיום, הזן סיסמה:"); 

אנחנו יכולים גם להשתמש ב לְנַחֵם בכיתה לכתוב פלט למסוף, למשל באמצעות printf () שיטה עם חוּט טַעֲנָה:

console.printf (progLanguauge + "מאוד מעניין!"); 

5. מסקנה

במאמר זה, הראינו כיצד להשתמש בכמה מחלקות Java לביצוע קלט ופלט של המשתמש במסוף.

כמו תמיד, דוגמאות הקוד ממדריך זה ניתנות ב- GitHub.