1.通过System.in方法输入

2.通过InputStreamReader和BufferedReader方法输入

3.通过Scanner类中的方法输入

package Problems_Solution;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Scanner;

public class IoExercise {
    public static void main(String[] args) {
        charTest();//静态方法,直接调用
        ReadTest();
        ScannerTest();
    }
    /*
    *System.in和System.out方法
   * 该方法能获取从键盘输入的单个字符
   * 获取的只是char类型的。如果想获得int,float等类型的输入需要类型转换
     */
    public static void charTest(){
        try {
            char ch=(char)System.in.read();//默认char型,定义为int不会报错但输出是ascii码
            System.out.println(ch);
            String str=String.valueOf(ch);//char 转String
            System.out.println(getType(Integer.parseInt(str)));//String 转 int
        } catch (IOException e) {
            e.printStackTrace();
        }


    }
    /*
     * InputStreamReader和BufferedReader方法
     * 可以获取字符串,不限制长度
     * 如何要获取的是int,float等类型的仍然需要转换
     */
    public static void ReadTest(){
        InputStreamReader is = new InputStreamReader(System.in); //new构造InputStreamReader对象
        BufferedReader br = new BufferedReader(is);
        try {
            String s=br.readLine();//读取一行
            System.out.println(s);//输出字符串
            String[] arr  = s.split(",");//字符串数组
            int[] b = new int[arr.length];
            for(int j = 0; j<b.length;j++) {
                b[j] = Integer.parseInt(arr[j]);//String 转换成int
            }
            for(int i:b){
                System.out.println(i);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /*
     * Scanner类中的方法
     * 可以获取键盘输入的字符串
     * 可以直接获取int,float等类型数据
     */
    public static void ScannerTest(){
        Scanner sc = new Scanner(System.in);
        String name = sc.nextLine();  //读取一行字符串型输入
        System.out.println(name);
        int age = sc.nextInt();    //读取整型输入
        float score = sc.nextFloat(); //读取float型输入
        System.out.println("Name:" + name +"\n" + "Age:"+age + "\n"+"Salary:"+score);
        String arr[]=name.split(" ");
        System.out.println(Arrays.toString(arr));//输出数组元素 Arrays.toString(a),返回一个包含数组元素的字符串,这些元素被放置在括号内,并用逗号分开
    }


    public static String getType(Object o){ //获取变量类型方法
        return o.getClass().toString(); //使用int类型的dugetClass()方法

    }
}