Да предположим, че имам прост текстов файл Simple.txt, който съдържа данни като тези
1 2 3 4 5 6
or
1 2 3 4 5
как да прочета този файл и да отпечатам сумата от целите числа с помощта на Java?
Да предположим, че имам прост текстов файл Simple.txt, който съдържа данни като тези
1 2 3 4 5 6
or
1 2 3 4 5
как да прочета този файл и да отпечатам сумата от целите числа с помощта на Java?
Опитайте този код.
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
(ако искаме да консумираме всички стойности в реда след неправилната).
- person Pshemo; 14.11.2015
args
, преди да се опитате да получите достъп до неговите елементи; не разчитайте на това, че потребителят предоставя правилните аргументи на командния ред.
- person jub0bs; 14.11.2015
Опитайте тази.
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())
- person Saedawke; 14.11.2015
Scanner
. Прегледайте данните сиwhile
hasNextInt()
и получете товаnextInt()
. - person Pshemo   schedule 14.11.2015