Я новый программист Java, и в настоящее время я начинаю учиться читать файлы. Я работаю над действием, в котором мне нужно прочитать числа из текстового файла в целочисленные массивы отдельным методом, а затем добавить значения из каждого из трех массивов основного метода.
Вот что у меня есть:
import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
public class FileToArrays{
public static void main(String[] args){
int[] b = new int [7];
int[] l = new int [7];
int[] d = new int [7];
readFile(b, l, d);
System.out.println("Sum of First Numbers: "+(b[0]+l[0]+d[0]));
System.out.println("Sum of Second Numbers: "+(b[1]+l[1]+d[1]));
System.out.println("Sum of Third Numbers: "+(b[2]+l[2]+d[2]));
System.out.println("Sum of Fourth Numbers: "+(b[3]+l[3]+d[3]));
System.out.println("Sum of Fifth Numbers: "+(b[4]+l[4]+d[4]));
System.out.println("Sum of Sixth Numbers: "+(b[5]+l[5]+d[5]));
System.out.println("Sum of Seventh Numbers: "+(b[6]+l[6]+d[6]));
System.out.println("");
}
static void readFile(int[] b, int[] l, int[] d){
try{
Scanner scnr = new Scanner(new File("Input.txt"));
int day = 0;
while(scnr.hasNextLine()){
String line = scnr.nextLine();
String [] words = line.split(" ");
b[day] = Integer.parseInt(words [0]);
l[day] = Integer.parseInt(words [1]);
d[day] = Integer.parseInt(words [2]);
day++;
}
scnr.close();
}catch(FileNotFoundException e){
System.out.println("Unable To Find File");
}
}
}
И текстовый файл («Input.txt») чисел, которые я читаю в массивы, отформатирован как:
800 1000 800
450 845 1200
1800 250 400
0 1500 1800
600 500 1000
700 1400 1700
675 400 900
Программа компилируется без ошибок, но когда я попытался запустить ее, каждое значение в трех массивах отображается как 0.
Мне кажется, что проблема может быть чем-то тривиальным, например, ошибкой в моих параметрах и форматировании, или я мог испортить способ чтения файла в массивы.
Тем не менее, любая информация о том, где я напутал, или советы о том, как подойти к подобным задачам в будущем, будет принята с благодарностью.
Спасибо за ваше время.