输入(Input)与输出(Output)是一个程序基本的功能。在Java中有各种负责数据输入输出的相关数据流(Data Stream)类,但是基础的I/O操作莫过于使用System类中的out对象与in对象,它们各自都拥有一些与标准输入(in对象)和输出(out对象)相关的方法(Method)。
Java的标准输出语句的声明方式如下:
System.out.print(数据); //不会换行 System.out.println(数据); //会换行
·System.out:代表系统的标准输出。
·println与print:它们的功能是将括号内的字符串打印输出。差别在于print在输出内容后不会换行,而println则会在输出内容后自动换行。
·数据的格式可以是任何类型,包括变量、常数、字符、字符串或对象等。
再看看下面的程序语句的输出情况:
System.out.println("字符串A" + "字符串B"); //使用运算符“+”来执行字符串的串接运算 System.out.println (布尔值变量?变量A:变量B); //使用三元条件运算符来进行条件判断
【范例程序:CH02_06】
01 //程序:CH02_06.java,基本输出 02 public class CH02_06 { 03 public static void main(String args[]) { //声明变量 04 String myStringA = "第一个字符串"; 05 String myStringB = "第二个字符串"; 06 String myStringC = "会串接在一起"; 07 int myIntA = 3; 08 boolean myBoolean = true; 09 //在屏幕上输出 10 System.out.print("[JAVA基本输出练习]\n"); 11 System.out.println("“真”的英文是" + myBoolean); 12 System.out.println(myStringA + myStringB); 13 System.out.println(myStringC); 14 System.out.println("1 + 2 = " + myIntA); 15 System.out.println("5 - 3 = " + (5 - myIntA)); 16 } 17 }
【程序的执行结果】
程序的执行结果可参考图2-9。
图2-9
【程序的解析】
第10行:使用\n转义控制字符强制print()方法执行换行操作。
第10~15行:示范各种基本输出使用模式。
在Java中,标准输入可以使用System.in,并配合read()方法,使用方式如下:
System.in.read();
·System.in:代表系统的标准输入。
·read():这个方法的功能是先从输入流(例如键盘输入的字符串)中读取下一个字节,再返回这个字符的ASCII码(0~255之间的整数)。
例如下面的程序语句:
System.out.println("请从键盘输入一个字符"); char data = (char) System.in.read();
在这段程序中,因为read()会返回整数类型,要对返回的数值进行类型转换的操作(将int类型转换为char类型),所以必须在read方法前面加上“(char)”。另外,read()方法一次只能读取一个字符,由于在此程序中仅有一行调用read()方法的语句,因此在键盘上无论输入多少个字符,它都只会读取第一个字符的ASCII值。
【范例程序:CH02_07】
01 //程序:CH02_07.java,基本输入 02 import java.io.*; 03 public class CH02_07 { 04 private static char myData; 05 public static void main(String args[]) throws IOException { 06 System.out.print("[基本输入练习]\n"); 07 System.out.print("请输入字符:"); 08 //输入字符 09 myData = (char)System.in.read(); 10 System.out.println("输入的字符为:" + myData); 11 } 12 }
【程序的执行结果】
程序的执行结果可参考图2-10。
图2-10
【程序的解析】
第04行:声明一个字符变量myData,用以存储用户键盘所输入的字符数据。
但问题是输入的数据类型不可能只限于单个字符,基于这个理由,我们不妨使用java.util.Scanner类,在这个类中可以通过Scanner对象来从外界获取输入的数据。有关Scanner对象的创建方式,必须使用new运算符,其声明的语法如下:
java.util.Scanner input_obj=new java.util.Scanner(System.in);
当以上述语句创建好Scanner对象后,就可以调用该对象所提供的方法来获取用户从键盘输入的数据。例如要输入一整行字符串,Scanner对象提供了nextLine()方法;要获取输入的整数,Scanner对象提供了nextInt()方法;要获取输入的浮点数,Scanner对象提供了nextDouble()方法。下面为获取各种数据类型输入的语句:
java.util.Scanner input_obj=new java.util.Scanner(System.in); System.out.print("请从键盘输入字符串类型: "); String StrVal =input_obj.nextLine(); System.out.println("您所输入的字符串值为 "+StrVal); System.out.print("请从键盘输入整数类型: "); int IntVal =input_obj.nextInt(); System.out.println("您所输入的整数值为 "+IntVal); System.out.print("请从键盘输入浮点数类型: "); double DoubleVal =input_obj.nextDouble(); System.out.println("您所输入的浮点数为 "+DoubleVal);