如何从文本文件创建一个对象数组列表,并让每个对象成为 java 中的一个数组?

How do you create an array list of objects from a text file and have each object be an array in java?

您如何能够导入 .txt 文件,然后将每一行作为一个对象放入数组列表中,但每个对象都是一个数组。

.txt 文件如下所示:

1 a 1 2 
1 b 0 1 
2 a 2 3 
2 b 0 3 
3 a 3 1 
3 b 0 3 

我希望能够使每一行成为对象数组,这样我就可以调用对象和数组中的特定点:

<1,a,1,2> 
<1,b,0,1> 
<2,a,2,3> 
<2,b,0,3> 
<3,a,3,1>
<3,b,0,3> 

然后有一个数组列表,其中每一行(可以有任意数量的行,因此我选择数组列表的原因)是数组列表中的一件事。有点像 <line1,line2,line3,etc..>,所以我可以使用数组列表,然后使用数组列表中各个数组中的值。

这是我目前拥有的代码,我不知道从这里去哪里。我正在使用缓冲 reader


        Scanner input = new Scanner(System.in);  // Create a Scanner object
        String inputString = input.nextLine(); 



        try {

            BufferedReader FSMreader = new BufferedReader(new FileReader(args[0]));      
            List<FSMline> line = new ArrayList<>(); 
            List<String> currentState = new ArrayList<>();
            List<String> inputChoice = new ArrayList<>(); 
            List<String> outputFunction = new ArrayList<>();
            List<String> nextState = new ArrayList<>();



            String lines;
            while ((lines = FSMreader.readLine()) != null) {

                line.add(new FSMline(lines.split(" ")));

            }

感谢任何帮助,因为我 运行 在 class 的截止日期前没有时间,我很难理解。

谢谢

因为你没有提到 FSMline 的数据类型,我创建了一个集合(数组的数组列表)- List<String[]> - 来存储给定文本文件的内容,如下所示:

BufferedReader fsmReader = new BufferedReader(new FileReader(args[0]));

List<String[]> contentList = new ArrayList<>();
String lines;
while ((lines = fsmReader.readLine()) != null) {
    contentList.add(lines.split(" "));
}

//print the list     
for (String[] content : contentList) {
    System.out.println(Arrays.toString(content));
}

控制台输出:

[1, a, 1, 2]
[1, b, 0, 1]
[2, a, 2, 3]
[2, b, 0, 3]
[3, a, 3, 1]
[3, b, 0, 3]

已更新

如果你想获取数组列表中第一个数组的第三个元素,请分别使用get(int index)[int index]从列表和数组中检索元素:

System.out.println(contentList.get(0)[2]);

或者,你可以使用Arrays.asList()将数组转换为列表,那么你也可以使用get(int index):

System.out.println(Arrays.asList(contentList.get(0)).get(2));