• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

Einlesen von Files

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
 
Zuletzt bearbeitet von einem Moderator:

MatzeLoCal

Rheinischer Bohnapfel
Registriert
05.01.04
Beiträge
2.422
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

Und was sagt die Exception? Bzw wie sieht der StackTrace aus?
 

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

slayercon

Meraner
Registriert
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 ...
 

ludes

Gast
schaut eher aus als wär das dokument nicht "well formed" also irgenwo ein schlmapiges tag ende oder so ...

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
 
Zuletzt bearbeitet von einem Moderator:

MatzeLoCal

Rheinischer Bohnapfel
Registriert
05.01.04
Beiträge
2.422
also der schaur so aus :
Continuing ...
java.lang.Exception: Unrecognized closing tag: helden


.
.
.
.

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

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>
 

MatzeLoCal

Rheinischer Bohnapfel
Registriert
05.01.04
Beiträge
2.422
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

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.
 

ludes

Gast
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.

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... ;)
 

slayercon

Meraner
Registriert
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.