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++