将文本文件中的输入读入arraylist

时间:2015-02-09 11:27:11

标签: java arrays bufferedreader

我有一个文本文件,我应该从中读取数据。然后应该使用数据来设置要通过的级别:

  • > 20→非常好
  • 介于12-20之间→确定
  • < 12→失败

.txt文件看起来像这样

X;20
Y;12

问题是,当我从文件中读取并将其添加到ArrayList时,它只会读取列。换句话说,结果是索引0包含X;Y,而索引1包含20;12。我需要的是索引0包含[X 20]和索引1以包含[Y 12]

我的代码是:

BufferedReader assignment = new BufferedReader(new FileReader(assignmentFile));
ArrayList<String> assignmentArrayList = new ArrayList<String>();
String item;
while ((item = assignment.readLine()) != null) {
    assignmentArrayList.add(item);
    String[] itemSplit = item.split(";");
    String passWithDistinction = itemSplit[0];
    String pass = itemSplit[1];
    System.out.println(passWithDistinction + pass);
}

2 个答案:

答案 0 :(得分:1)

您可以将文件的内容检索到String数组,如下所示:

File assignmentFile = new File("C:/Dir1/Dir2/file.txt");
ReadFile assignment = new ReadFile(assignmentFile.getAbsolutePath());
String[] lines = assignment.OpenFile();

如果您想设置字符串,那么他们就不会拥有&#39 ;;&#39;符号,添加以下行:

for(int i=0; i<lines.length(); i++)
    lines[i].replace(";", " ");

答案 1 :(得分:0)

如果我理解你的问题,那么你想要阅读文本文件,最后得到两个定义区别和通过标记的数字。我不确定X和Y是什么以及为什么要存储它们 - 如果您愿意,我很乐意为您提供帮助。

如果您知道文本文件有两行(且只有两行),那么您并不需要一个while循环。更简单的是依次读取和解析这些行:

String[] distinctionLine = assignment.readLine().split(";");
int distinction = Integer.parseInt(distinctionLine[1]);
String[] passLine = assignment.readLine().split(";");
int pass = Integer.parseInt(passLine[1]);

您应该检查一些例外和错误情况,但希望您明白这一点。