java的控制台输入输出有很多方法,此文分别对其进行介绍。
1、控制台的输入
关于控制台的输入主要介绍三种方法,第一种方法使用BufferedReader获得控制台输入的数据,此方法是传统的输入方法,使用起来比较繁琐,输入效率也不高,其次是使用System.in作为输入,感觉此方法不是很灵活。最后,使用Scanner作为输入,这种方法使用起来非常的方便好用,并且功能强大。
1.1 使用BufferedReader方法输入,这种方法很繁琐
//返回输入的一行数据 public static String readLine1() throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); return br.readLine(); }
1.2 直接使用System.in输入
//获得输入的一数据块 public static String readLine2() throws IOException { byte buf[] = new byte[1024]; int i = System.in.read(buf); return new String(buf, 0, i-2); //有两个结束符, ,所以要减2 }
1.3使用Scanner输入,这种方法最好用
/** * 可以使用s.next()输入一个不含空格的字符串, * s.nextInt():输入一个整数 * s.nextDouble():输入一个double * s.nextByte():输入一个字符 **/ public static String readLine3() { Scanner s = new Scanner(System.in); return s.nextLine(); //s.nextInt(); }
2、控制台的输出
输出方式总共两种,分别是正常输出和发生错误时的输出。
两种输出分别为:
System.out.println("out: "+str); System.err.println("err: "+str);
关于System.out函数的输出,有很多的输出格式,
在此借用一网友的代码,原文链接: Ajioy的专栏,JAVA控制台输出格式
public static void main(String[] args) { //Console print format //System.out.printf(format, args);format为指定的输出格式,args参数 System.out.printf("%+8.3f ", 3.14); //"+"表示后面输出的数字会有正负号,正的+,负的- ;8.3f表示输出浮点数,宽度为8,小数点保持3位有效 System.out.printf("%+-8.3f ", 3.14);//"-"表示靠左对齐 System.out.printf("%08.3f ", 3.14);//"0"8位宽度中自动补0 System.out.printf("%(8.3f ", -3.14);//"("如果是负数,自动加上( ) System.out.printf("%,f ", 123456.78); //","金钱表示方法,每三位有一个逗号 System.out.printf("%x ", 0x2a3b); //输出16进制数 System.out.printf("%#x ", 0x2a3b);//输出带0x标识的16进制数 System.out.printf("老板:您名字%s,年龄:%3d岁,工资:%,-7.2f ","ajioy",21,36000.00); System.out.printf("老板:您名字%1$s,年龄:%2$#x岁 ","ajioy",38); //"n{1}quot;表示用第n个参数 }