将文本文件内容写入 Java 中的自定义数组列表
Posted
技术标签:
【中文标题】将文本文件内容写入 Java 中的自定义数组列表【英文标题】:Write text file content into custom arraylist in Java 【发布时间】:2015-06-15 01:08:20 【问题描述】:假设我有一个文本文件 DataBase.txt,其内容如下:
1 leo messi 12.12.1986
2 cristiano ronaldo 22.01.1985
3 arjen robben 14.11.1991
还有一个如下所示的自定义数组列表:
public static ArrayList<Rows> InfoList = new ArrayList<Rows>();
这是我的 Rows 类实现,带有 setter、getter 和 toString 方法:
public class Rows
public int id;
public String firstName;
public String secondName;
public String dateOfbrth;
@Override
public String toString()
return this.id + " " + this.firstName + " " +
this.secondName + " " + this.dateOfbrth;
public int getId()
return id;
public String getFirstName()
return firstName;
public String getSecondName()
return secondName;
public String getDateOfbrth()
return dateOfbrth;
public void setId(int id)
this.id = id;
public void setFirstName(String firstName)
this.firstName = firstName;
public void setSecondName(String secondName)
this.secondName = secondName;
public void setDateOfbrth(String dateOfbrth)
this.dateOfbrth = dateOfbrth;
所以。问题是:如何将文本文件内容写入 arrayList,其中每个元素都将被引用到类 Rows 中自己的字段。尽管每行中的空格数不同?哪些算法或 Java 类将有助于解决这个问题?
我是 Java 新手,所以我尝试使用 BuffredReader 来做到这一点,但我坚持分离 line 并将每个元素添加到 数组列表:
try (BufferedReader br = new BufferedReader(new FileReader("F:/DataBase.txt")))
for (String line; (line = br.readLine()) != null; )
感谢您的帮助
【问题讨论】:
你应该搜索一下,这个问题已经被问过很多次了。 【参考方案1】: while ((line = br.readLine()) != null)
String[] row = line.split("\\s+");
Row row = new Row();
row.setId(row[0]);
row.setFirstName(row[1]);
row.setSecondName(row[2]);
row.setDateOfbrth(row[3]);
InfoList.add(row);
\s+ 是一个正则表达式,它将导致任意数量的连续空格将您的字符串拆分为标记,请参阅此答案How to split a String by space 希望对您有所帮助。
【讨论】:
【参考方案2】:就是这样:
try (BufferedReader br = new BufferedReader(new FileReader("F:/DataBase.txt")))
String line;
while((line = br.readLine())!=null )
String[] values = line.split("\\s+");
...
【讨论】:
以上是关于将文本文件内容写入 Java 中的自定义数组列表的主要内容,如果未能解决你的问题,请参考以下文章
根据 JSON 文件中的内容文本调整带有 UILabel 的自定义单元格的大小
如何使用 glide* 使用数组列表中的自定义适配器将图像设置为列表视图