免责声明:这是作业,所以我在一些限制下工作。
我需要读取文件的前5行并使用这些字符串来更改标签和按钮,然后将文件的其余部分保存为arraylist。
该文件如下所示:
Name
Label1
Label2
Button1
Button2
Button3
word0,word0
word1,word1
etc
我已经能够使用以下代码读取(word0,word0等)中的wordpairs(前5行是添加,因此它现在可能无效):
public static ArrayList loadFile(String filename) {
ArrayList<Wordpair> temp = new ArrayList<>();
try {
FileInputStream fis;
fis = new FileInputStream(filename);
//Scanner to read individual lines from a file
Scanner scan = new Scanner(fis);
while (scan.hasNext()) {
String line = scan.nextLine();
//Scanner to read individual items from a string
Scanner lineScan = new Scanner(line);
lineScan.useDelimiter(",");
String question = lineScan.next();
String answer = lineScan.next();
//Create the new Wordpair
Wordpair wp = new Wordpair(question, answer);
//Add the new wordpair to the list
temp.add(wp);
}
scan.close();
} catch (FileNotFoundException ex) {
Logger.getLogger(IO.class.getName()).log(Level.SEVERE, null, ex);
}
return temp;
}
我的想法是将文件的前5行保存为单独的对象,该对象仅包含文件中的信息,但我不知道如何操作。 我最初的想法是创建一个新方法,只读取前5行然后返回一个对象,就像上面的代码用wordpairs,但我还没有能够得到任何工作。然后我想我需要让现有代码跳过开头。
正如你所看到的,我在这里很困惑,所以如果有人能指出我正确的方向,我将非常感激!
答案 0 :(得分:2)
我会在你的while循环中使用一个计数器。
int count = 0;
while (scan.hasNext()) {
String line = scan.nextLine();
//Scanner to read individual items from a string
Scanner lineScan = new Scanner(line);
lineScan.useDelimiter(",");
String question = lineScan.next();
String answer = lineScan.next();
if (count < 5)
//lineScan contains one of the first 5 lines
//call a method to do something with these lines here
else {
//Create the new Wordpair
Wordpair wp = new Wordpair(question, answer);
//Add the new wordpair to the list
temp.add(wp);
}
count++;
}
答案 1 :(得分:0)
您可以在循环中使用计数器:
int c = 0;
while (scan.hasNext()) {
if (c < 5){
//do something
//first 5 lines
}
else{
//otherwise
//next lines
}
}