正如标题所解释的那样,我试图将每一行分配给一个字符串(我的最终目标是让它从文本文件中拉出一行,然后使用下面的行作为答案,然后重复此操作直到文件已经完成)现在我只得到它将整个文件分配给一个字符串(行)。这是我的代码 -
import java.io.*;
import java.util.Scanner;
import java.lang.*;
import javax.swing.JOptionPane;
public class Test {
public static void main(String[] args) {
// Location of file to read
File file = new File("a.txt");
try {
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
JOptionPane.showInputDialog("" + line);
}
scanner.close();
} catch (FileNotFoundException e) {
System.out.println("Can't find file");
}
}
}
任何帮助,或使用其他导入的变通方法 - 谢谢。
答案 0 :(得分:1)
您可以使用ArrayList
String
来存储从文件中读取的行:
public static void main(String[] args) {
// Location of file to read
File file = new File("a.txt");
List<String> lines = new ArrayList<String>();
try {
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
lines.add(scanner.nextLine();
}
scanner.close();
} catch (FileNotFoundException e) {
System.out.println("Can't find file");
}
}
数组列表lines
将按照它们在文件中出现的顺序包含文件的行,这意味着您可以遍历lines
数组,其中lines.get(i)
将成为问题而lines.get(i+1)
就是答案:
for (int i = 1; i < lines.size(); i+=2)
{
String question = lines.get(i - 1);
String answer = lines.get(i);
JOptionPane.showInputDialog("Question: " + question + " Answer:" + answer);
}
答案 1 :(得分:0)
现在实现,你的行变量只包含执行结束时文件的最后一行。如果要存储每一行,可以将它们放在字符串的ArrayList中:
ArrayList<String> lines = new ArrayList<String>();
....
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
lines.add(line);
JOptionPane.showInputDialog("" + line);
}