2

これは私のファイルがどのように見えるかです:

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)

4

1 に答える 1

0

あなたの問題の根本は、Java が相対パス名をどのように扱うかを理解していないことにあるようです。

File javadoc の内容は次のとおりです。

UNIX システムでは、現在のユーザー ディレクトリに対して解決することにより、相対パス名が絶対パス名になります。Microsoft Windows システムでは、相対パス名は、パス名で指定されたドライブの現在のディレクトリ (存在する場合) に対して解決することにより、絶対パス名になります。そうでない場合は、現在のユーザー ディレクトリに対して解決されます。

「現在のユーザー ディレクトリ」とは、アプリケーションが起動されたときに有効だった現在のディレクトリを意味します。これは、アプリケーションの起動方法によって異なります。たとえば、 を使用してコマンド シェルから起動した場合java、現在のディレクトリはシェルの現在のディレクトリになります。ただし、起動ラッパー スクリプトを使用するとcd、JVM を起動する前に別の場所に移動する可能性があります。等々。

ただし、相対パスを使用する場合は、正しい現在のディレクトリが必要です。

ちなみに、JVM が起動すると、現在のディレクトリの絶対パスが System Properties オブジェクトに配置されます。プロパティを読み取って現在のディレクトリが何であるかを調べることができますが、プロパティを変更しても、ファイル API とその仲間によって相対パスが解決される方法は変わりません。私の知る限り、純粋なJavaアプリケーションが独自の現在のディレクトリを確実に変更できる方法はありません。

于 2012-08-24T01:14:54.723 に答える