• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

Einlesen von Files

  • Ersteller Ersteller ludes
  • Erstellt am Erstellt am

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:
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?
 
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();
}
 
schaut eher aus als wär das dokument nicht "well formed" also irgenwo ein schlmapiges tag ende oder so ...
 
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:
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>
 
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.
 
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... ;)
 
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.