1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Einlesen von Files

Dieses Thema im Forum "OS X-Developer" wurde erstellt von ludes, 26.11.06.

  1. ludes

    ludes Gast

    Also ich habe vor, dass ich verschiedene files in ein java-Programm einlese. Also eigentlich so ziemlich alle textformate
    und ich wollte wissen, wie ich die am besten einlesan kann um nur den text zu erhalten und nicht auch die Formatierung oder sonstige infos zu dem file.

    Hätte es bei XML zb so gemacht nur ein kleines bsp:

    static public void deserialize(String filename ) throws FileNotFoundException
    {
    boolean b= true;
    XMLDecoder o = new XMLDecoder(new FileInputStream(filename));

    Object string = o.readObject();
    o.close();
    }

    Aba da wirft er mir immer eine Exception.
    Das funktioniert leider nur, wenn ich das auch selber rausschreibe in ein xml.

    Würd mich freun, wenn Verbesserungsvorschläge kommen würden.
    Ich brauch auch noch was für html,txt,rtf,doc,svx
    mfg
     
    #1 ludes, 26.11.06
    Zuletzt von einem Moderator bearbeitet: 26.11.06
  2. bz.mac

    bz.mac Gast

    Moin,

    also fuer doc koennte Dir das HWPF von Poi http://jakarta.apache.org/poi/index.html helfen.
    Allerdings sind die noch ganz am Anfang waehrend ich POI fuer HSSF (horrible spreadsheet format) schon mal verwendet habe.

    bz.mac
     
  3. MatzeLoCal

    MatzeLoCal Rheinischer Bohnapfel

    Dabei seit:
    05.01.04
    Beiträge:
    2.421
    Und was sagt die Exception? Bzw wie sieht der StackTrace aus?
     
  4. ludes

    ludes Gast

    also der schaur so aus :
    Continuing ...
    java.lang.Exception: Unrecognized closing tag: helden
    Continuing ...
    java.util.NoSuchElementException
    at java.util.Vector.lastElement(Vector.java:461)
    at com.sun.beans.ObjectHandler.lastExp(ObjectHandler.java:132)
    at com.sun.beans.ObjectHandler.dequeueResult(ObjectHandler.java:136)
    at java.beans.XMLDecoder.readObject(XMLDecoder.java:218)
    at at.ludi.codec.xml.deserialize(xml.java:16)
    at at.ludi.woerter_statistik.GUI.importieren(GUI.java:232)
    at at.ludi.woerter_statistik.GUI.actionPerformed(GUI.java:180)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1882)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2202)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
    at javax.swing.AbstractButton.doClick(AbstractButton.java:334)
    at javax.swing.AbstractButton.doClick(AbstractButton.java:282)
    at javax.swing.plaf.basic.BasicMenuItemUI$Actions.actionPerformed(BasicMenuItemUI.java:969)
    at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1576)
    at javax.swing.JComponent.processKeyBinding(JComponent.java:2763)
    at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:656)
    at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:664)
    at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:664)
    at javax.swing.JMenuBar.processKeyBinding(JMenuBar.java:640)
    at javax.swing.KeyboardManager.fireBinding(KeyboardManager.java:255)
    at javax.swing.KeyboardManager.fireKeyboardAction(KeyboardManager.java:242)
    at javax.swing.JComponent.processKeyBindingsForAllComponents(JComponent.java:2840)
    at javax.swing.JComponent.processKeyBindings(JComponent.java:2832)
    at javax.swing.JComponent.processKeyEvent(JComponent.java:2726)
    at java.awt.Component.processEvent(Component.java:5331)
    at java.awt.Container.processEvent(Container.java:2010)
    at java.awt.Component.dispatchEventImpl(Component.java:4021)
    at java.awt.Container.dispatchEventImpl(Container.java:2068)
    at java.awt.Component.dispatchEvent(Component.java:3869)
    at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1810)
    at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:672)
    at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:920)
    at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:798)
    at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:636)
    at java.awt.Component.dispatchEventImpl(Component.java:3907)
    at java.awt.Container.dispatchEventImpl(Container.java:2068)
    at java.awt.Window.dispatchEventImpl(Window.java:1774)
    at java.awt.Component.dispatchEvent(Component.java:3869)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:176)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

    die java.lang.exception hab ich für jerde zeile einmal... also kommt die öfter vor.

    der ganze code ist
    static public void deserialize(String filename ) throws FileNotFoundException
    {
    boolean b= true;
    XMLDecoder o = new XMLDecoder(new FileInputStream(filename));

    while(b)
    {
    Object string = o.readObject();
    if(string != null) System.out.println( string.toString() );
    else b=false;
    }
    o.close();
    }
     
  5. slayercon

    slayercon Meraner

    Dabei seit:
    17.01.05
    Beiträge:
    231
    schaut eher aus als wär das dokument nicht "well formed" also irgenwo ein schlmapiges tag ende oder so ...
     
  6. ludes

    ludes Gast

    das hab ich mir auch schon fast gedacht...
    i werd es mal versuchen... ein korrektes file aufzutreiben und das dann nochmal versuchen...
    nö i denk net, dass es am format liegt.. hab jez 2 files versucht, die direkt vo eclipse sind... die müssten den standard haben... und die sind auch net gegangen
     
    #6 ludes, 26.11.06
    Zuletzt von einem Moderator bearbeitet: 26.11.06
  7. MatzeLoCal

    MatzeLoCal Rheinischer Bohnapfel

    Dabei seit:
    05.01.04
    Beiträge:
    2.421
    Scheinbar wird "helden" zwar zugemacht, aber nie geöffnet.
    An deinem Code liegt es also nicht, sondern eher am XML.

    Ein einfaches XML ist doch schnell selbst gemacht.
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <root>
      <child>Ich bin ein XML-Kind</child>
    </root>
    
     
  8. MatzeLoCal

    MatzeLoCal Rheinischer Bohnapfel

    Dabei seit:
    05.01.04
    Beiträge:
    2.421
    Und was sagte hier der StackTrace?
    Weil wenn du schreibst "die sind auch net gegangen", dann kann sich hier niemand so recht was drunter vorstellen.
     
  9. ludes

    ludes Gast

    Jo schon klar, dass man ohne StackTrace nur schwer sagen kann, woran es liegt...
    also ich hab das jez mal bei deinem xml versucht
    und dabei kam das heraus:

    org.xml.sax.SAXParseException: Content is not allowed in prolog.
    Continuing ...
    java.util.NoSuchElementException
    at java.util.Vector.lastElement(Vector.java:461)
    at com.sun.beans.ObjectHandler.lastExp(ObjectHandler.java:132)
    at com.sun.beans.ObjectHandler.dequeueResult(ObjectHandler.java:136)
    at java.beans.XMLDecoder.readObject(XMLDecoder.java:218)
    at at.ludi.codec.xml.deserialize(xml.java:16)
    at at.ludi.woerter_statistik.GUI.importieren(GUI.java:222)
    at at.ludi.woerter_statistik.GUI.actionPerformed(GUI.java:170)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1882)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2202)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
    at javax.swing.AbstractButton.doClick(AbstractButton.java:334)
    at javax.swing.AbstractButton.doClick(AbstractButton.java:282)
    at javax.swing.plaf.basic.BasicMenuItemUI$Actions.actionPerformed(BasicMenuItemUI.java:969)
    at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1576)
    at javax.swing.JComponent.processKeyBinding(JComponent.java:2763)
    at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:656)
    at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:664)
    at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:664)
    at javax.swing.JMenuBar.processKeyBinding(JMenuBar.java:640)
    at javax.swing.KeyboardManager.fireBinding(KeyboardManager.java:255)
    at javax.swing.KeyboardManager.fireKeyboardAction(KeyboardManager.java:242)
    at javax.swing.JComponent.processKeyBindingsForAllComponents(JComponent.java:2840)
    at javax.swing.JComponent.processKeyBindings(JComponent.java:2832)
    at javax.swing.JComponent.processKeyEvent(JComponent.java:2726)
    at java.awt.Component.processEvent(Component.java:5331)
    at java.awt.Container.processEvent(Container.java:2010)
    at java.awt.Component.dispatchEventImpl(Component.java:4021)
    at java.awt.Container.dispatchEventImpl(Container.java:2068)
    at java.awt.Component.dispatchEvent(Component.java:3869)
    at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1810)
    at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:672)
    at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:920)
    at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:798)
    at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:636)
    at java.awt.Component.dispatchEventImpl(Component.java:3907)
    at java.awt.Container.dispatchEventImpl(Container.java:2068)
    at java.awt.Window.dispatchEventImpl(Window.java:1774)
    at java.awt.Component.dispatchEvent(Component.java:3869)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:176)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

    Und das mit dem erstellen vo xml is halt so was.. Ich kenn den Syntax davon net wirklich... ;)
     
  10. slayercon

    slayercon Meraner

    Dabei seit:
    17.01.05
    Beiträge:
    231
    Also bevor mann sich mit der Verarbeitung von Daten befasst ist es meist kein Schaden wenn man das Format (Datenstruktur) kennt das man parsen und eventuell in eine andere Datenstruktur (relationale Datenbank ?) überführen will....

    http://www.w3schools.com/xml/

    Aber der Fehler sieht nach einem nicht korrekten XML aus oder vielleicht will er ein Schema oder eine DTD, ich parse XML meist mit JDOM ...

    lg S.
     

Diese Seite empfehlen