从文件读取并将第一个Integer作为字符串存储,其余作为Integers存储

时间:2018-12-13 10:52:19

标签: java

我正在尝试读取文件并存储各个整数,但是将文件中的第一个整数制成字符串。我已经能够读取文件,但是我正在努力分别存储整数。我想在程序中使用它们。

文件每行有三个整数,中间用空格隔开。

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);
 }
}

1 个答案:

答案 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();
}

输出为:

enter image description here