包含整数的输入文件将如下所示:
5 2 3 5
2 4 23 4 5 6 4
那么我如何读取第一行,用空格分隔并将这些数字添加到Arraylist1。然后读取第二行,用空格分隔并将数字添加到ArrayList2,依此类推。 (所以Arraylist1将包含[5,2,3,5]等)
FileInputStream fstream = new FileInputStream("file.txt");
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String data;
while ((data = br.readLine()) != null) {
//How can I do what I described above here?
}
答案 0 :(得分:4)
作业?
您可以使用:
String[] tmp = data.split(" "); //Split space
for(String s: tmp)
myArrayList.add(s);
或者你看一下Scanner课程。
答案 1 :(得分:2)
考虑使用StringTokenizer
一些帮助:String tokenizer
StringTokenizer st = new StringTokenizer(in, "=;");
while(st.hasMoreTokens()) {
String key = st.nextToken();
String val = st.nextToken();
System.out.println(key + "\t" + val);
}
答案 2 :(得分:1)
您可以从data.split("\\s+");
中获取一个标准数组,它将为您提供int []。你需要额外的东西把不同的行放到不同的列表中。
答案 3 :(得分:1)
在我尝试了HectorLector提供的答案后,它在某些特定情况下无效。所以,这是我的:
String[] tmp = data.split("\\s+");
这使用正则表达式
答案 4 :(得分:0)
您需要的是ArrayList of ArrayList
。您可以使用java中的data.split("\\s+");
函数获取String数组中单行中的所有元素,然后将这些元素放入ArrayLists的ArrayList的内部ArrayList中。
对于下一行,您可以移动到外部ArrayList的下一个元素,依此类推。