Разбор файла Ofx с Java - PullRequest
       24

Разбор файла Ofx с Java

0 голосов
/ 30 августа 2011

В настоящее время я пытаюсь прочитать файл ofx с помощью Java.Но я получаю следующую ошибку: 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 (неизвестный источник) в java.security.AccessController.doPrivileged (собственный метод)на java.net.URLClassLoader.findClass (неизвестный источник) на java.lang.ClassLoader.loadClass (неизвестный источник) на sun.misc.Launcher $ AppClassLoader.loadClass (неизвестный источник) на java.lang.ClassLoader.loadClass (неизвестный источник)... еще 2

Я пытаюсь понять это.Я считаю, что не может найти исключение XMLParseException.Но я не уверен.

Ответы [ 2 ]

4 голосов
/ 08 декабря 2011

Вторая проблема, с которой вы столкнулись: «Исключение в потоке» main «java.lang.NoClassDefFoundError: net / n3 / nanoxml / XMLParseException» означает, что вы не включили библиотеку NanoXML отсюда: http://devkix.com/nanoxml.php

Вам также понадобится библиотека регистрации Apache Commons, так как NanoXML, по-видимому, зависит от этого. Доступно здесь: http://commons.apache.org/logging/download_logging.cgi

2 голосов
/ 30 августа 2011

Это означает, что вы не ловите FileNotFoundException.Кроме того, хотя это не относится к вашему сообщению об ошибке, но в качестве лучшей практики вы всегда должны закрывать поток файлов в блоке finally, как показано ниже.Также нет необходимости делать новую 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();
        }
    }
...