在Java程序中,如果需要输入大量的数值,那么从键盘上输入是非常繁琐的事。可以将这些数据用空格隔开,保存在一个名为input.txt的文本文件中,然后使用Java输入和输出重定向。例如需要循环求和计算,新建一个input.txt的文本文件(数据以0结尾,因为下面的求和运算程序是以0作为程序终止求和的条件),文件中存入数据1 5 7 9 13 16 17 15 0。求和运算的Java程序名为Sumdata.java,则重定向过程如下:
①编译Java程序:javac Sumdata.java
②输入重定向:java Sumdata < input.txt
③得到求和结果,而不再需要从键盘输入数据。
类似地,还有输出重定向,输出重定向将输出发送给文件,而不是将它们显示在控制台上。输出重定向的命令为:java ClassName > output.txt。还可以在同一命令中同时使用输入重定向和输出重定向。例如,从文件input.txt中获取输入,并将输出发送给文件output.txt:java Sumdata < input.txt > output.txt。
附Sumdata.java程序:
import java.util.Scanner;
public class Sumdata {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner indata = new Scanner(System.in);
// Read an initial data
System.out.print( "Enter an int value (the program exits if the input is 0): ");
int data = indata.nextInt();
// Keep reading data until the input is 0
int sum = 0;
while (data != 0) {
sum += data;
// Read the next data
System.out.print( "Enter an int value (the program exits if the input is 0): ");
data = indata.nextInt();
}
System.out.println("The sum is " + sum);
}
}
注:如果出现下面的情况,找不到或无法加载主类Sumdata,注意检查java程序中是否带有包名,如package demo;,将程序中的package语句删除即可。