用java解析Ofx文件

时间:2011-08-29 20:27:02

标签: java parsing ofx

我目前正在尝试用java读取一个ofx文件。 但是我收到以下错误:Unhandled exception type FileNotFoundException(第2行)。我正在使用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     在OfxTest.afficherFichier(OfxTest.java:31)     在OfxTest.main(OfxTest.java:20) 引起:java.lang.ClassNotFoundException:net.n3.nanoxml.XMLParseException     在java.net.URLClassLoader $ 1.run(未知来源)     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个

我想弄清楚。我相信它找不到XMLParseException。但我不确定。

2 个答案:

答案 0 :(得分:4)

你遇到的第二个问题:“线程中的异常”主“java.lang.NoClassDefFoundError:net / n3 / nanoxml / XMLParseException”表示你没有从这里包含NanoXML库:{{3} }

您还需要Apache Commons Logging库,因为NanoXML似乎依赖于此。可在此处获取:http://devkix.com/nanoxml.php

答案 1 :(得分:2)

这意味着您没有抓住FileNotFoundException。此外,虽然这与您的错误消息无关,但作为最佳实践,您应该始终关闭finally块中的文件流,就像我在下面一样。也没有必要对文件名上的新String()做。

FileNotFoundException添加此catch块: -

    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();
        }
    }