Java 从.txt文件读取并转换为列表<;地图>;

Java 从.txt文件读取并转换为列表<;地图>;,java,xml,Java,Xml,我有很重的.txt文件。它包含如下格式: 0 1 2 3 4 5 6 7 ... n 0 A, B, c, D, E, F, G, H, 1 AA, BB, CC, DD, EE, FF, GG, HH, 2 3 . . n 我想保存地图中的每一行。 例如,在第一行中:map。地图,地图,。。。 然后我想在列表中保存这些地图。例如,我想在列表中保存100行。 例如,如果我编写这个函数:

我有很重的.txt文件。它包含如下格式:

  0      1    2    3    4    5    6    7   ... n
0 A,     B,   c,   D,   E,   F,   G,   H,  
1 AA,    BB,  CC,  DD,  EE,  FF,  GG,  HH, 
2
3
.
.
n
我想保存地图中的每一行。 例如,在第一行中:map。地图,地图,。。。 然后我想在列表中保存这些地图。例如,我想在列表中保存100行。 例如,如果我编写这个函数:“list.get(1.get(4));“我收到了”EE“ 这意味着首先我必须排成一行,然后我排到第四行并接收“EE”。 你能指导我如何解决这个问题吗? 我读了一些关于“春天批次”的文章,它告诉了我想要什么 你能帮我解决这个问题吗

public class spliter {
    static int w=0;
    private static HashMap<Integer,String> map = new HashMap<Integer,String>();
    private static List<Map<Integer, String>> list=new ArrayList<Map<Integer,String>>();
    public static void main(String[] args) throws IOException{
        String string = null;
        try {
            BufferedReader reader = new BufferedReader(new FileReader("C:\\test.txt"));

            while( (string = reader.readLine()) != null ) {

                String[] parts = string.split(",");
                int i=parts.length;
                for(int j=0; j<i; j++){
                    map.put(j, parts[j]);
                }           
                list.add(map);
                w++;
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }   
    }
}
公共类拆分器{
静态int w=0;
私有静态HashMap map=newhashmap();
私有静态列表=新的ArrayList();
公共静态void main(字符串[]args)引发IOException{
String=null;
试一试{
BufferedReader=new BufferedReader(新文件阅读器(“C:\\test.txt”);
而((string=reader.readLine())!=null){
String[]parts=String.split(“,”);
int i=零件长度;

对于(int j=0;j这样简单的问题,可以使用扫描仪读取每一行,然后
String.split(…)
分割每一行。类似于:

while line exists
  read line into String using Scanner
  split String using String#split(...)
  use array from split to create a list
  add above list to master list
end while
请注意,您可以将其包含在列表列表中,而无需任何地图。
list
应该可以为您完成此操作

我认为,我们给你们这样的一般性建议,然后看看你们能用它做些什么,对你们会更有启发


我已经创建了一个社区维基,所以所有人都可以很容易地为这个答案做出贡献,所以没有人会因为增加投票而获得声誉。

你可以给我们这样的东西

public class ArrayReader {
public static void main(String[] args) {
    List<List<String >> array = new ArrayList<>();
    try (BufferedReader br = new BufferedReader(new FileReader("file.txt"));){
    String line;
    while ((line=br.readLine())!=null)
        array.add(Arrays.asList(line.split(",")));

    } catch (IOException e) {
        e.printStackTrace();
    }
}
公共类ArrayReader{
公共静态void main(字符串[]args){
列表数组=新的ArrayList();
try(BufferedReader br=new BufferedReader(new FileReader(“file.txt”));){
弦线;
而((line=br.readLine())!=null)
add(Arrays.asList(line.split(“,”));
}捕获(IOE异常){
e、 printStackTrace();
}
}

}

我也需要同样的,我是为了你才这么做的

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.*;
public class Spliter {
    private static List<Map<String, Object>> list = new ArrayList<> ();
    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new FileReader("C:\\Users\\829784\\Desktop\\Repo\\Documentacion Repositorio\\test.txt"));
        String line = "";
        String firstline = reader.readLine();
        while ((line = reader.readLine()) != null) {
            Map < String, Object > map = new TreeMap < > ();
            String[] partsfirstline = firstline.split(";");
            String[] parts = line.split(";");
            int i = parts.length;
            for (int j = 0; j < i; j++) {
                map.put(partsfirstline[j], parts[j]);
            }
            list.add(map);
        }
        System.out.println(list.get(0).values());
        System.out.println(list.get(1).values());
    }
}
导入java.io.BufferedReader;
导入java.io.FileReader;
导入java.io.IOException;
导入java.util.*;
公共类拆分器{
私有静态列表=新的ArrayList();
公共静态void main(字符串[]args)引发IOException{
BufferedReader=new BufferedReader(新文件阅读器(“C:\\Users\\829784\\Desktop\\Repo\\Documentacion Repositorio\\test.txt”);
字符串行=”;
字符串firstline=reader.readLine();
而((line=reader.readLine())!=null){
MapMap=newtreemap<>();
字符串[]partsfirstline=firstline.split(“;”);
String[]parts=line.split(“;”);
int i=零件长度;
对于(int j=0;j
我认为您还不应该担心Spring Batch。这是一个编程问题-将Spring Batch添加到混合中只会使事情变得复杂。到目前为止,您写了什么?@M.Rezamojaral:很高兴它有所帮助。