• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> 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.