这就是我的文件:
IDENTIFICATION::HARD::Should We appreciate Art?::Yes
MULTIPLECHOICE::HARD::Which of the FF is not an era of Art?::Bayutism::Digitalism,Somethingism,Retardism,Bayutism
IDENTIFICATION::HARD::What is Chris Browns Greatest Hit?::Rihanna
我正在读这样的文件
public void openQBankFile(){
try{
BufferedReader in = new BufferedReader(new FileReader(qbank.getAbsolutePath()));
String desc;
while((desc = in.readLine()) != null){
qbank_cont.add(desc);
}
in.close();
}catch(FileNotFoundException fnfe){
System.out.println("Question Repository Could Not Be Found");
return;
}catch(IOException ioe){
ioe.printStackTrace();
}
}
这是我获取arrayList
的内容的地方public static void main(String[] args){
CreateQuiz cq = new CreateQuiz(new File("./quiz/HUM101.quiz"),new File("./qbank/HUM101.qbank"));
cq.openQBankFile();
cq.filterQuestions(3, "HARD");
System.out.println(cq.qbank_cont.get(0));
}
这就是我添加它的方式
public void filterQuestions(int numOfItems, String difficulty){
List<String> qt_diff = new ArrayList<String>();
for(int i = 0; i< qbank_cont.size();i++){
qt_diff.add(qbank_cont.get(i));
}
}
我将它存储在arrayList
内。但是当我将它存储在arraylist中时,它只会插入整个文本。每行不行。 (我正在使用arrayList.get(0)
)
答案 0 :(得分:0)
问题的根源似乎是你不了解Java如何处理相对路径名。
以下是File javadoc所说的内容:
在UNIX系统上,通过将相对路径名解析为当前用户目录,使其成为绝对路径名。在Microsoft Windows系统上,通过将路径名解析为路径名所指定的驱动器的当前目录(如果有),使相对路径名成为绝对路径名;如果没有,则根据当前用户目录解析。
“当前用户目录”表示启动应用程序时生效的当前目录。这取决于应用程序的启动方式。例如,如果使用java
从命令shell启动,则当前目录将是shell的当前目录。但是,如果您使用启动包装器脚本,则在启动JVM之前它可能会cd
到其他位置。等等。
但最重要的是,如果您要使用相对路径,则需要拥有正确的当前目录。
顺便提一下,当JVM启动时,当前目录的绝对路径将放置在“系统属性”对象中。您可以阅读该属性以了解当前目录是什么,但更改属性不会更改File API和朋友解析相对路径的方式。 AFAIK,纯Java应用程序无法可靠地更改其自己的当前目录。