0

私は現在、Javaでofxファイルを読み取ろうとしています。しかし、次のエラーが発生します:( Unhandled exception type FileNotFoundException2行目)。OFx4jを使用しています。そのためのヒントを教えてください。

これまでに書いたコードは次のとおりです。

String filename=new String("C:\\file.ofx");
    FileInputStream file = new FileInputStream(filename);
    NanoXMLOFXReader nano = new NanoXMLOFXReader();

    try
    {
        nano.parse(stream);
        System.out.println("woooo It workssss!!!!");
    }
    catch (OFXParseException e)
    {
    }

コメントありがとうございます。いくつか変更を加えました。

String FILE_TO_READ = "C:\\file.ofx";


    try
    {
        FileInputStream file = new FileInputStream(FILE_TO_READ);
        NanoXMLOFXReader nano = new NanoXMLOFXReader();


        nano.parse(file);
        System.out.println("woooo It workssss!!!!");
    }
    catch (OFXParseException e)
    {
        System.out.println("Message : "+e.getMessage());
    }
    catch (Exception e1)
    {
        System.out.println("Other Message : "+e1.getMessage());
    }

しかし今、私はこれを手に入れています:

スレッド「main」の例外java.lang.NoClassDefFoundError:Net / n3 / nanoxml / XMLParseException at OfxTest.afficherFichier(OfxTest.java:31)at OfxTest.main(OfxTest.java:20)原因:java.lang.ClassNotFoundException: net.n3.nanoxml.XMLParseException at java.net.URLClassLoader $ 1.run(Unknown Source)at java.security.AccessController.doPrivileged(Native Method)at java.net.URLClassLoader.findClass(Unknown Source)at java.lang.ClassLoader .loadClass(Unknown Source)at sun.misc.Launcher $ AppClassLoader.loadClass(Unknown Source)at java.lang.ClassLoader.loadClass(Unknown Source)... 2 more

私はそれを理解しようとしています。XMLParseExceptionが見つからないと思います。しかし、私にはわかりません。

4

2 に答える 2

4

発生している2番目の問題:「スレッド「main」の例外java.lang.NoClassDefFoundError:net / n3 / nanoxml / XMLParseException」は、ここからNanoXMLライブラリを含めていないことを意味します:http://devkix.com /nanoxml.php

NanoXMLはこれに依存しているように見えるため、ApacheCommonsLoggingライブラリも必要になります。ここで入手可能:http://commons.apache.org/logging/download_logging.cgi

于 2011-12-08T11:58:57.873 に答える
1

これは、あなたが捕まえていないことを意味しますFileNotFoundException。また、これはエラーメッセージとは関係ありませんが、ベストプラクティスとして、以下のように、finallyブロックでファイルストリームを常に閉じる必要があります。また、ファイル名のnew String()を実行する必要もありません。

FileNotFoundException:-にこのキャッチブロックを追加します

    String filename = "C:\\file.ofx";
    FileInputStream file = null;
    NanoXMLOFXReader nano = null;
    try
    {
         file = new FileInputStream(filename);
         nano = new NanoXMLOFXReader();
        nano.parse(stream);
        System.out.println("woooo It workssss!!!!");
    }
    catch (OFXParseException e)
    {
        e.printStackTrace();
        throw e;
    }catch (FileNotFoundException e){
        e.printStackTrace();
        throw e;
    }finally{
        if(file!=null){
           file.close();
        }
    }
于 2011-08-29T20:38:51.137 に答える