我有一个文本文件,我应该从中读取数据。然后应该使用数据来设置要通过的级别:
.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);
}
答案 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]);
您应该检查一些例外和错误情况,但希望您明白这一点。