【发布时间】:2015-11-14 18:20:31
【问题描述】:
假设我有一个简单的文本文件 Simple.txt 包含这样的数据
1 2 3 4 5 6或
1 2 3 4 5如何读取这个文件并使用 Java 打印整数的总和?
【问题讨论】:
-
使用
Scanner。遍历您的数据while它hasNextInt()并得到nextInt()。 -
谷歌围绕“扫描仪”和“nextint”
假设我有一个简单的文本文件 Simple.txt 包含这样的数据
1 2 3 4 5 6或
1 2 3 4 5如何读取这个文件并使用 Java 打印整数的总和?
【问题讨论】:
Scanner。遍历您的数据 while 它 hasNextInt() 并得到 nextInt()。
试试这个代码。
import java.io.*;
import java.util.*;
public class SumNumbers {
public static void main(String args[]){
try{
File f = new File(args[0]);
Scanner scanner = new Scanner(f);
int sum = 0;
while (scanner.hasNext()){
sum += scanner.nextInt();
}
System.out.println("Sum:"+sum);
}catch(Exception err){
err.printStackTrace();
}
}
}
编辑:如果你想在文件中捕获不正确的输入,你可以改变 while 循环如下
while (scanner.hasNext()){
int num = 0;
try{
num = Integer.parseInt(scanner.nextLine());
}catch(NumberFormatException ne){
}
sum += num;
}
【讨论】:
hasNextTYPE,所以让我们使用它。如果类型不正确,只需调用 has... 并使用 next 或 nextLine 使用不正确的值(如果我们想在不正确的值之后使用所有值)。
args 的长度;不要依赖用户提供正确的命令行参数。
试试这个。
import java.util.*;
import java.io.File;
import java.io.IOException;
public class ReadFile
{
public static void main(String[] args)
throws IOException
{
Scanner textfile = new Scanner(new File("Simple.txt"));
filereader(textfile);
}
static void filereader(Scanner textfile)
{
int i = 0;
int sum = 0;
while(textfile.hasNextLine())
{
int nextInt = textfile.nextInt();
System.out.println(nextInt);
sum = sum + nextInt;
i++;
}
}
【讨论】:
while(textfile.hasNextLine())