0

C:/proj/test_xml/Test.java にクラス Test があります。与えられた parser.parse("test.xml"); 現在のディレクトリ、proj、または C:/ にあるかどうかにかかわらず、test.xml を解析する方法が必要です。また、ソリューションでは java.io を使用しないでください。

ありがとう

4

2 に答える 2

0

あなたの質問を理解できたかどうかはわかりませんが、さまざまな場所、限られた数の任意のディレクトリでファイルを検索したいと考えていると思います。最後の要件は特にひどいように思えます... なぜ java.io を使用しないのでしょうか? (私の)頭に浮かぶ最も簡単な解決策は、実際には次のようになります。

String[] filenames = { "c://a.pdf", "c://airu//a.pdf" };
File f = null;
boolean found = false;
for (String filename : filenames)
{
    f = new File(filename);
    found = f.exists(); 
    if (found) break;
}
if (!found) 
{
    throw new RuntimeException("file nowhere to be found");
}
System.out.println("file " + f.getName() + " found");

質問に詳細を追加してみてください(編集)。

于 2008-12-29T10:26:29.707 に答える
0

解析で IOException がスローされなくなるまで、ループを試してください。

String filename="test.xml";
int tries=3;
while( tries-->0 ) {
    try {
        parser.parse(filename);
        break;
    } catch( FileNotFoundException e ) {
        // FileNotFound expected
        filename="../"+filename;
    }
}

試行回数 == 0 の場合、ファイルがまったく見つかりませんでした。DOM パーサーの場合、parser.parse() から返された Document オブジェクトを保持する必要があります。

于 2008-12-29T10:51:31.980 に答える