我正在尝试读取文件并存储各个整数,但是将文件中的第一个整数制成字符串。我已经能够读取文件,但是我正在努力分别存储整数。我想在程序中使用它们。
文件每行有三个整数,中间用空格隔开。
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class arrayListStuffs2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Please enter the file name: e.g \'test.txt\'");
String fileName = sc.nextLine();
try {
sc = new Scanner(new File(fileName));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
List<String> listS = new ArrayList<>();
List<Integer> listI = new ArrayList<>();
while (sc.hasNextLine()) {
listI.add(sc.nextInt());
}
System.out.println(listI);
}
}
答案 0 :(得分:1)
您可以使用以下方法。迭代行,将其拆分,首先取为字符串,另两个取为整数(假设您的数据为
1 2 3
4 5 6
7 8 9
):
List<String> listS = new ArrayList();
List<Integer> listI = new ArrayList();
// try with resource automatically close resources
try (BufferedReader reader = Files.newBufferedReader(Paths.get("res.txt")))
{
reader.lines().forEach(line -> {
String[] ints = line.split(" ");
listS.add(String.valueOf(ints[0]));
listI.add(Integer.parseInt(ints[1]));
listI.add(Integer.parseInt(ints[2]));
});
} catch (IOException e) {
e.printStackTrace();
}
输出为: