在学习网络编程中,有需要从控制台输入数据,进行两个线程之间的通信,其中,涉及到了读取控制台输入的两种不同的操作,笔者在这里进行记录,以供大家分享。
检测实例如下:
public static User getUser2() throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("请输入账号"); String username = br.readLine(); System.out.println("请输入密码"); String password = br.readLine(); br.close(); return new User(username,password); }
在获取控制台输入的方法中,创建Scanner对象来获取是最佳的方法,其有以下优势:
检测实例如下:
public static User getUser(){ Scanner scanner = new Scanner(System.in); System.out.println("请输入账号"); String username = scanner.nextLine(); System.out.println("请输入密码"); String password = scanner.nextLine(); return new User(username,password); }
public static void main(String[] args) { java.util.Scanner sc=new Scanner(System.in); System.out.println("请输入将要计算阶乘的整数n:"); int n=sc.nextInt(); //接收整数类型输入 sc.close(); }
public static void main(String[] args) { java.util.Scanner sc=new java.util.Scanner(System.in); System.out.println("请输入需要判断是否为十进制的数字"); String n=sc.nextLine();//接收字符串 sc.close(); }
法一》直接获取一个字符
public static void main(String[] args) throws Exception //注意抛出异常 { java.util.Scanner sc=new java.util.Scanner(System.in); System.out.println("请输入一个字符:"); char n=(char)System.in.read(); //直接获取一个字符 sc.close(); }
法二》先接收一个字符串,再接收其第一个字符
public static void main(String[] args) //注意 throws Exception可以不写 { java.util.Scanner sc=new java.util.Scanner(System.in); System.out.println("请输入一个字符:"); char n=sc.next().charAt(0);//先从控制台接收字符串,再接收它的第一个字符 sc.close(); }
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。