Java 从.txt文件读取并转换为列表<;地图>;
我有很重的.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行。 例如,如果我编写这个函数:
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:很高兴它有所帮助。