Java使用System.out来表示标准输出设备,而用System.in来表示标准输入设备。默认情况下,输出设备是显示器,而输入设备是键盘。当程序通过System.in获取输入时,是从键盘获取输入;而通过System.out输出时,输出到屏幕上。
看下面的代码↓:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.print("enter an intenger:(the input ends if it is 0)");
int data = input.nextInt();
int sum = 0;
while (data != 0) {
sum += data;
System.out.print("enter an intenger(the input ends if it is 0):");
data = input.nextInt();
}
System.out.println("the sum is " + sum);
input.close();
}
}
这段代码是计算从键盘输入的数字之和,直到读到的数字为0停止循环,但是如果需要输入大量数值,那么从键盘上输入是十分麻烦的;因此,可以将需要输入的数据保存在一个名为input.txt的文本文件中;
程序从文件input.txt中读取输入,而不是让用户在运行时从键盘输入数据,假设一个名为input.txt文件的内容是:2 3 4 5 6 0,那么程序得到的Sum值将为20;
下面说明怎样在命令行实现:
(1)使用记事本创建java源代码,保存在特定目录,例如我的目录为G:\data\eclipse data\demo\demo>,文件的保存类型为.java。
(2) 在此目录下建一个文本文件input.txt,存放数据;
(3)打开命令行,定位到该目录,使用命令编译源码,编译成功会在目录下生成一个class文件
javac Testinput.java
(4)使用输入重定向从文件读取数据
java Testinput < input.txt
可以看到程序通过文件而不是键盘输入读取数据;类似地,还有输出重定向语句,输出重定向语句将输出发送给文件,而不是将其显示在控制台上,输出重定向的语句为:
java Testinput > output.txt
可以在同一命令行同时使用输入和输出重定向。例如,下面的命令从Input.txt获取输入,并将输出发送给文件output.txt:
java Testinput <input.txt> output.txt