Java控制台读写

时间:2021-10-25 22:02:24

Java控制台读写

控制台读

Java中进行控制台读操作主要是通过Scanner,BufferReader,Console类进行

1. Scanner

Scanner对象定义

在控制台
Scanner类一般有以下两种定义
import java.util.Scanner;
import java.io.BufferReader;
Scanner sc1=new Scanner(System.in);      //--1
Scanner sc2=new Scanner(new InputStreamReader(System.in)); //-2

Scanner是Java设计的一个文本扫描器类,对于第一行,在创建类的时候给出构造器参数System.in说明这是通过系统键盘即控制台输入的,第二个Scanner对象将控制台输入数据进行了字符流读取转换,效率上可以比第一个Scanner对象快一些

Scanner API

byte nextByte();
double nextDouble();
....等等基础数据,API的命名见名思义
重点介绍两个API
String next();
String nextLine();
两个API都是用来读取String对象的
next()必须读取到至少一个有效字符,无效字符是那些看不见的,如(TAB,空格,换行),并且再读取至少一个有效字符后才能够将无效字符作为结束符处理
nextLine()只将换行符作为无效字符,且没有限制必须读入有效字符。
2. Console

Console对象的定义

impot java.io.Console;
public class Demo{
    public static void main(String[] args){
         Console con=System.console();
         String account=con.readLine("please input the account");
         char[] pwd=con.readPassword("please input the password");
    }
}

Console API

String readLine()
String readLine(String fmt,Object... args)
char[] readPassword()
char[] readPassword(String fmt,Object... args)
format(String fmt,Object... args)
printf(String fmt,Object... args)
3. BufferReader

BufferReader对象的定义

import java.io.InputStreamReader;
import java.io.BufferReader;
public class Demo{
    public static void main(String[] args){
         BufferReader br=new BufferReader(new InputStreamReader(System.in));
         String ans=br.readLine();
         br.close();
    }
}

BufferReader API
因为BufferReader只支持readLine(),read(),可以利用那些封装类进行装箱拆箱操作以便读取多种数据

int read();
int read(char buffer[],int off,int len);
int readLine();

控制台写

System.out.print();
System.out.println();
System.out.printf();      //类似C++