我将一些ArrayList保存到文件中,它具有以下格式:
[hotel1, hotel2, hotel3] // ArrayList 1 contents
[hotel5, hotel6] // ArrayList 2 contents
当我正在阅读时,我想分配例如一个ArrayList myList,我想将hotel1,hotel2和hotel3添加到myList。我可以直接做到这一点吗?目前我有一个字符串值,读取下一行,它保存括号。正在寻找另一种方式,以便我可以将每一行分配给一个ArrayList<字符串>对象
public class MyClass1 {
ArrayList<String> myList = new ArrayList<String>();
... // some other code
private void loadUp() throws IOException{
JFileChooser chooser = new JFileChooser();
chooser.setDialogTitle("Choose a file to open...");
checker = chooser.showOpenDialog(null);
// if open is clicked
if (checker == JFileChooser.APPROVE_OPTION) {
File inFile = chooser.getSelectedFile();
Scanner in = new Scanner(inFile);
while (in.hasNextLine()) {
// Here want to assign next line to myList
}
in.close();
}
}
答案 0 :(得分:3)
使用此:
Scanner file = new Scanner(myFile);
ArrayList<Scanner> lines = new ArrayList<>();
while(file.hasNextLine())
lines.add(new Scanner(file.nextLine()));
ArrayList<ArrayList<String>> lists = new ArrayList<>(lines.size());
for(Scanner s : lines)
s.useDelimeter("[, ]" + System.lineSeparator());
for(int i = 0; i < lines.size(); ++i)
{
while(lines.get(i).hasNext())
{
lists.add(new ArrayList<String>());
lists.get(i).add(lines.get(i).next());
}
}
然后,您将得到一个包含值的字符串列表列表。
答案 1 :(得分:2)
尝试下面的代码来阅读每一行
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
// process the line.
}
br.close();