DataOutputStream Ob lässt sich nicht vergleichen mit Strings

Status
Nicht offen für weitere Antworten.

Heiland

Bekanntes Mitglied
Ich habe ein Objekt der Klasse DataOutputStream und möchte nun den Inhalt (eine Textdatei mit Strings)
mit einem normalen Benutzerinput vergleichen! hier mal der code dass man sich das besser vorstellen kann

Code:
			inLATEIN = new FileInputStream("vokabeln_latein.txt");
			inDEUTSCH = new FileInputStream("vokabeln_deutsch.txt");
			eingabeDateiLATEIN = new DataInputStream(inLATEIN);
			eingabeDateiDEUTSCH = new DataInputStream(inDEUTSCH);

String Felder werden gefüllt mit den Zeichenketten

Code:
			for(int i=0; i<eingabe_int; i++)
		    {
			   abfrageLatein[i] = eingabeDateiLATEIN.readLine();
			   abfrageDeutsch[i] = eingabeDateiDEUTSCH.readLine();
		    }

Und schließlich die Abfrage

Code:
		for(int j=0; j<eingabe_int; j++)
		{
			System.out.println(abfrageLatein[j]);
			try
			{
				vokabel_eingabe=in.readLine();
			    if(vokabel_eingabe.equals(abfrageDeutsch[j]))
		            {
			        System.out.println("Richtiiig!\n");
			        
			    }
                            else
                            {
                                 System.out.println("Falsch!");
                            }
		    }
		    catch (IOException ex)
			{
				System.out.println(ex.getMessage());
			}	
		}

Wenn ich das Proggi starte, dann kommt auch brav die erste Zeichenkette, aber wenn ich dann das wort eintippe, dann kommt immer die Aussage 'Falsch!'. Ich glaube, dass es an der Methode readLine() liegt, aber ich habe nichts alternatives gefunden!

Wie könnte ich das ändern?

PS: in die Arrays werden viele Zeichenketten gespeichert!
 

meez

Top Contributor
Hab grad meinen guten Tag...

Code:
   public static void main(String[] args) throws Throwable {
        BufferedReader latin = new BufferedReader(new InputStreamReader(new FileInputStream("vokabeln_latein.txt")));
        BufferedReader dein = new BufferedReader(new InputStreamReader(new FileInputStream("vokabeln_deutsch.txt")));
        Map map = new HashMap();
        String lat, de;
        w: while ((lat = latin.readLine()) != null) map.put(lat, dein.readLine());
        f: for (Iterator it = map.keySet().iterator(); it.hasNext();) {
            lat = (String) it.next();
            de = (String) map.get(lat);
            System.out.println(lat + "?");
            String answer = new BufferedReader(new InputStreamReader(System.in)).readLine();
            if (answer.equals(de))
                System.out.println("Richtig");
            else
                System.out.println("Falsch");
        }
    }

Oder direkt (Ohne es in den Arbeitsspeicher zu lesen):
Code:
 public static void main(String[] args) throws Throwable {
        BufferedReader latin = new BufferedReader(new InputStreamReader(new FileInputStream("c:\\aaa.txt")));
        BufferedReader dein = new BufferedReader(new InputStreamReader(new FileInputStream("c:\\bbb.txt")));
        String lat, de;
        w: while ((lat = latin.readLine()) != null) {
            de = dein.readLine();
            System.out.println(lat + "?");
            String answer = new BufferedReader(new InputStreamReader(System.in)).readLine();
            if (answer.equals(de))
                System.out.println("Richtig");
            else
                System.out.println("Falsch");
        }
    }
 

Heiland

Bekanntes Mitglied
Also, das funktioniert soweit auch! Aber leider ist es immer die Ausgabe Falsch, egal was ich schreibe!
 

Heiland

Bekanntes Mitglied
Hier nochamal der ganze Quellcode

Code:
 /**
* Sample application using Frame.
*
* @author
* @version 1.00 05/01/28
*/

import java.awt.*;
import java.awt.event.*;
import java.util.Hashtable;
import java.util.Iterator;
import java.io.*;
import java.io.DataOutputStream;
import java.lang.ClassNotFoundException;

public class VokabelTrainer extends Frame
{
   String eingabe="";
   
   int eingabe_int=0;
   TextField vokabelanzahl;
   TextField deutsch[] = new TextField[eingabe_int];
   TextField latein[] = new TextField[eingabe_int];
   //String lateinHash[];
   //String deutschHash[];
   //String abfrageLatein[] = new String[eingabe_int];
   //String abfrageDeutsch[] = new String[eingabe_int];
   //Object lateinHash2[] = new Object[eingabe_int];
   //Object deutschHash2[] = new Object[eingabe_int];
   //Object key;
   FileOutputStream fosLATEIN;
   FileOutputStream fosDEUTSCH;
   DataOutputStream ausgabeDateiLATEIN;
   DataOutputStream ausgabeDateiDEUTSCH;
   FileInputStream inLATEIN;
   FileInputStream inDEUTSCH;
   DataInputStream eingabeDateiLATEIN;
   DataInputStream eingabeDateiDEUTSCH;

                     
    //Hashtable vokabeln = new Hashtable();
   
   
    /**
     * The constructor.
     */
     public VokabelTrainer()
     {
        setLayout( new GridBagLayout() );
                     
       
        final Insets insets = new Insets( 2, 2, 2, 2);
               
        MenuBar menuBar = new MenuBar();
        Menu menuFile = new Menu();
       
        MenuItem menuFileExit = new MenuItem();
        MenuItem menuFileSave = new MenuItem();
        MenuItem menuFileAbfragen = new MenuItem();
        
        vokabelanzahl = new TextField("1");
        
        add( vokabelanzahl, new GridBagConstraints( 1, 0, 1, 1, 1.0, 1.0,
           GridBagConstraints.NORTHEAST, GridBagConstraints.NONE, insets, 0, 0) );
           
           
           
        vokabelanzahl.addKeyListener(new KeyAdapter()
        {
           public void keyPressed(KeyEvent e)
           {
              if(e.getKeyCode() == KeyEvent.VK_ENTER)
              {
                  eingabe = vokabelanzahl.getText();
                 eingabe_int = Integer.parseInt(eingabe);
                 
                 System.out.println("making list...");
                 System.out.println("Anzahl: "+eingabe_int);
                 
             
                 latein = new TextField[eingabe_int];
                 deutsch = new TextField[eingabe_int];
                 
                 GridBagConstraints constraintsDEUTSCH = new GridBagConstraints( 0, 0, 2, 1, 1.0, 1.0,
                       GridBagConstraints.EAST, GridBagConstraints.VERTICAL, insets, 0, 0 );
                 
                 GridBagConstraints constraintsLATEIN = new GridBagConstraints( 0, 0, 2, 1, 1.0, 1.0,
                       GridBagConstraints.WEST, GridBagConstraints.VERTICAL, insets, 0, 0 );
                 
                 
                 for(int i = 0; i <eingabe_int; i++)
                 {
                      latein[i] = new TextField("latein");
                      deutsch[i]= new TextField("deutsch");
                      constraintsLATEIN.gridy = i+1;
                      constraintsDEUTSCH.gridy = i+1;
                      add(latein[i], constraintsLATEIN);
                      add(deutsch[i], constraintsDEUTSCH);
                 
                      //repaint();
                 }
                 validate();
               
              }
            }
        });
       
        Label anzahl = new Label("Wieviele Vokabeln möchten Sie eingeben?");
        add(anzahl, new GridBagConstraints( 0, 0, 1, 1, 1.0, 1.0,
               GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL, insets, 0, 0));
       
        menuFile.setLabel("File");
        menuFileExit.setLabel("Exit");
        menuFileSave.setLabel("speichern...");
        menuFileAbfragen.setLabel("abfragen!");
        
        //Vokabeln in Textdateien speichern
        menuFileSave.addActionListener
        (
           new ActionListener()
           {
              public void actionPerformed(ActionEvent e)
              {
                 String lateinHash[] = new String[eingabe_int];
                 String deutschHash[] = new String[eingabe_int];

                 try
                 {
                 	
               		fosLATEIN = new FileOutputStream("c:\\latein_vokabeln.txt");
               		fosDEUTSCH = new FileOutputStream("c:\\deutsch_vokabeln.txt");
					ausgabeDateiLATEIN = new DataOutputStream(fosLATEIN);
					ausgabeDateiDEUTSCH = new DataOutputStream(fosDEUTSCH);
					
                                     
                    for(int i=0; i<eingabe_int; i++)
                    {
                       lateinHash[i] = latein[i].getText();
                       deutschHash[i] = deutsch[i].getText();
                       ausgabeDateiLATEIN.writeChars(lateinHash[i]+"\n");
                       ausgabeDateiDEUTSCH.writeChars(deutschHash[i]);
                    }
                    System.out.println("files have been saved!");

                    //ausgabeDatei.close();
                 }
                 catch (IOException fehler)
                 {
                    fehler.printStackTrace();
                    System.out.println("ERROR AT SAVING");
                 }                 

              }
           }
           
        );
        
        //Die Methode Abfragen aufrufen 
        menuFileAbfragen.addActionListener
        (
        	new ActionListener()
        	{
        		public void actionPerformed(ActionEvent e)
        		{
        			Abfrage();
        		}
        	});
       
        // Add action listener.for the menu button
        menuFileExit.addActionListener
        (
            new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    VokabelTrainer.this.windowClosed();
                }
            }
        );
       
        menuFile.add(menuFileAbfragen);
        menuFile.add(menuFileSave);
        menuFile.add(menuFileExit);
       
        menuBar.add(menuFile);
       
        setTitle("VokabelEditor");
        setMenuBar(menuBar);
        setSize(new Dimension(900, 700));
       
        // Add window listener.
        this.addWindowListener
        (
            new WindowAdapter()
            {
                public void windowClosing(WindowEvent e)
                {
                    VokabelTrainer.this.windowClosed();
                }
            }
        );
    }
    
    //Hauptprogramm starten -> Vokabeln abfragen
    public void Abfrage()
    {
    	String abfrageLatein[] = new String[eingabe_int];
        String abfrageDeutsch[] = new String[eingabe_int];
    	String vokabel_eingabe="";
    	BufferedReader in = new BufferedReader(new InputStreamReader (System.in));
    		
		try
		{
		
			BufferedReader latin = new BufferedReader(new InputStreamReader(new FileInputStream("c:\\latein_vokabeln.txt")));
        	BufferedReader dein = new BufferedReader(new InputStreamReader(new FileInputStream("c:\\deutsch_vokabeln.txt")));
        	String lat, de;
        	while ((lat = latin.readLine()) != null) 
        	{
            	de = dein.readLine();
            	System.out.println(lat);
            	String answer = new BufferedReader(new InputStreamReader(System.in)).readLine();
            	if (answer.equals(de))
            	{
            		System.out.println("Richtig");
            	}
            	else
            	{
            		System.out.println("Falsch");
            	}
                
        	}
        }
        catch (IOException e)
        {
        	System.out.println(e.getMessage());
        }

    	
    }
         

   
    /**
     * Shutdown procedure when run as an application.
     */
    protected void windowClosed()
    {
       
       // TODO: Check if it is save to close the application
       
        // Exit application.
        System.exit(0);
    }
}
 
B

Beni

Gast
Das Problem wurde im Chat besprochen, und solange JaVa keine weiteren Fragen hat eigentlich gelöst.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M java.io.EOFException bei einem DataoutputStream ?! Allgemeine Java-Themen 2
I Problem mit DataOutputStream Allgemeine Java-Themen 8
M Probleme mit skip() bei DataOutputStream Allgemeine Java-Themen 2
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
Kiki01 Häufigster Buchstabe lässt sich nicht ermitteln Allgemeine Java-Themen 30
T Projekt baut nicht mehr/lässt sich nicht mehr ausführen Allgemeine Java-Themen 6
O Jar lässt sich auf bestimmten Pc nicht starten Allgemeine Java-Themen 18
M String lässt sich nicht Zusammenfügen Allgemeine Java-Themen 10
T Login lässt App crashen! Allgemeine Java-Themen 14
G Jar lässt sich mit macOS nicht starten Allgemeine Java-Themen 9
S Compiler-Fehler IntelliJ Projektdatei lässt sich nicht erstellen. Allgemeine Java-Themen 15
E GUI.jfm lässt sich nicht mehr öffnen Allgemeine Java-Themen 1
K jar-Datei lässt sich unter Windows nicht verwenden Allgemeine Java-Themen 3
L Jar lässt sich nicht öffnen Allgemeine Java-Themen 12
C .jar File lässt sich nur über Konsole öffnen Allgemeine Java-Themen 1
K Java lässt sich nicht Installieren Windows7Ultimate 64Bit Allgemeine Java-Themen 1
L Garbage Collector lässt Programm kurz hängen Allgemeine Java-Themen 10
D swingset3.jnlp lässt sich nicht ausführen Allgemeine Java-Themen 2
F Spiel lässt sich nicht aus GUI starten Allgemeine Java-Themen 5
J setUndecorated lässt GUI "spacken" Allgemeine Java-Themen 52
R Windows-Firewall lässt Java nicht durch Allgemeine Java-Themen 17
N Java lässt sich nicht löschen! Allgemeine Java-Themen 7
D Java Excel API - Schreiben in Excel lässt sich nicht über Makro starten Allgemeine Java-Themen 18
P jar-Datei lässt sich nicht ausführen Allgemeine Java-Themen 5
J Java programm lässt sich in win7 nach linux install nicht mehr ausführen Allgemeine Java-Themen 18
D JMF - lässt sich nicht im ausgewählten Format aufnehmen Allgemeine Java-Themen 2
M Java lässt sich nicht installieren Allgemeine Java-Themen 10
J pack() lässt JFrame grau Allgemeine Java-Themen 3
V JRE lässt sich nicht installieren. Allgemeine Java-Themen 10
L JDK lässt sich nicht deinstallieren Allgemeine Java-Themen 3
T KeyListener lässt sich nur einmal drücken Allgemeine Java-Themen 2
T Datenbank lässt sich un Entwicklungsumgebung öffnen, aus .jar aber nicht Allgemeine Java-Themen 9
D Shell-Prozess lässt Thread nicht enden Allgemeine Java-Themen 4
S HWPF Problem: doc lässt sich nach Bearbeitung nicht mehr lesen Allgemeine Java-Themen 6
T (nur) HP Photosmart Drucker lässt einzelne Seiten aus Allgemeine Java-Themen 6
G Thread lässt sich mit interrupt() nicht unterbrechen Allgemeine Java-Themen 6
S Lässt sich eigne JPanel Klasse in ein Array "stecken&qu Allgemeine Java-Themen 5
Noar Klasse lässt sich nicht kompilieren Allgemeine Java-Themen 2
J jacob - lässt sich nicht installieren Allgemeine Java-Themen 8
J Simpler Thread lässt sich NIE über interrupt() unterbrechen Allgemeine Java-Themen 8
H Java lässt sich nicht öffnen. Allgemeine Java-Themen 16
S Javaprogramm lässt sich nicht per .bat Datei ausführen. Allgemeine Java-Themen 22
E Programm lässt sich nicht starten ! Allgemeine Java-Themen 16
S habe programm aber es lässt sich net mit bild einbinden! Allgemeine Java-Themen 4
M Access lässt sich nicht über "exec(command)" start Allgemeine Java-Themen 3
B jar-Datei lässt sich nicht ausführen Allgemeine Java-Themen 10
N Lwjgl 3d Objekt wird schmaler, wenn es sich dreht Allgemeine Java-Themen 0
A Eclipse hängt sich auf Allgemeine Java-Themen 7
D Image bewegt sich nicht nach Klicken auf Button Allgemeine Java-Themen 15
Viper13125 Eclipse Hängt sich auf, wenn ich SimpelDateFormat drin lasse Allgemeine Java-Themen 2
L Java überprüfen lassen, ob sich ein gegebener Pfad / das Programm an sich auf einer CD oder Festplatte befindet Allgemeine Java-Themen 14
Tiago1234 Warum hängt sich mein Programm auf? Allgemeine Java-Themen 22
C Parsen einer sich updatenden Html mithilfe von jsoup Allgemeine Java-Themen 4
Tobero Wie berechnet man ob zwei Linien sich schneiden? Allgemeine Java-Themen 2
Tobero Wie bekomme ich in welchem Quadrat sich eine Position in einem Grid befindet Allgemeine Java-Themen 11
D Anfänger versucht sich an Xtext Allgemeine Java-Themen 0
F Sich automatisch aufrufende Java-Methoden Allgemeine Java-Themen 2
kodela Inhalt eines Arrays ändert sich mysteriös Allgemeine Java-Themen 2
P JavaFX Anwendung beendet sich selbst nur als Jar Allgemeine Java-Themen 40
Drachenbauer Wie finde ich den Aufrufer zu einer Methode, die sich nicht in meinem Projekt befindet? Allgemeine Java-Themen 2
A 2D-Grafik Einfachster Ansatz, um sich wiederholende Figur in einem 2D-Image zu erkennen Allgemeine Java-Themen 1
I Lohnt sich heutzutage der Aufwand einer Portierung für MacOS Allgemeine Java-Themen 8
H Erste Schritte Ausführbare Dateien lassen sich nicht starten Allgemeine Java-Themen 5
L Excel Datei löscht sich selbst im Programm - Java Allgemeine Java-Themen 3
K OOP Daten addieren sich bei GUI-Eingabe Allgemeine Java-Themen 10
K ursprüngliche ArrayList ändert sich bei Übergabe in Methode Allgemeine Java-Themen 18
N Quicksort Programm hängt sich auf Allgemeine Java-Themen 6
S Compiler-Fehler Programm verhält sich in Eclipse anders Allgemeine Java-Themen 1
G Beendet sich der Thread selbst?! Allgemeine Java-Themen 3
J Bilder lassen sich nicht importieren Allgemeine Java-Themen 3
H Kennt sich jemand mit Eclipse und dem Thema Jar-File aus ? Allgemeine Java-Themen 6
S Programm hängt sich manchmal (selten) auf Allgemeine Java-Themen 9
D System.arraycopy verhält sich seltsam Allgemeine Java-Themen 1
C Threads Methode verhält sich merkwürdig Allgemeine Java-Themen 18
D Best Practice Gesamten Bildschirminhalt auslesen und Email schicken sobald kein Pixel sich ändert Allgemeine Java-Themen 11
X Sich wiederholende substrings finden Allgemeine Java-Themen 6
P Input/Output Inputstream verhält sich verschieden Allgemeine Java-Themen 9
T Minimax/Alphabeta Algorithmus hängt sich auf (?) Allgemeine Java-Themen 2
Tausendsassa Threads Einen Thread sich selbst schließen lassen Allgemeine Java-Themen 17
K Java installiert sich nicht ganz Allgemeine Java-Themen 15
E Anwendung verhält sich unter Mac anders als Unter Windows. Allgemeine Java-Themen 4
T BufferedImage verändert sich beim Einlsesen Allgemeine Java-Themen 1
Z Eclipse hängt sich alle paar Sekunden auf (Keine Rückmeldung). Allgemeine Java-Themen 4
L Liste führt sich nicht weiter Allgemeine Java-Themen 5
F Wert ändert sich nicht Allgemeine Java-Themen 12
T Nach Java Update: Jar Datein öffnen sich nicht mehr mit doppelklick Allgemeine Java-Themen 3
M Programm startet sich selbst neu, alte Logfiles bleiben gesperrt Allgemeine Java-Themen 2
J String Variable verändert sich plötzlich Allgemeine Java-Themen 8
F JTable mit Zellen die sich durch andere Eingaben füllen Allgemeine Java-Themen 1
E Liste löscht sich selbstständig Allgemeine Java-Themen 5
I JPanel soll sich dem JFrame anpassen Allgemeine Java-Themen 1
ruutaiokwu datenstruktur welche sich "im kreis" dreht Allgemeine Java-Themen 26
L Prog läuft in der IDE, hängt sich aber am Mac auf Allgemeine Java-Themen 0
B Threads halten sich irgendwie auf... Allgemeine Java-Themen 6
G Services verwenden sich gegenseitig Allgemeine Java-Themen 4
A Auswahl eines JEditorPane das Sich in einem JScrollPanel Befindet Allgemeine Java-Themen 2
J kann eine .jar sich selbst verschieben? Allgemeine Java-Themen 6
M Erkennen, in welcher Methode sich die VM befindet Allgemeine Java-Themen 6
Rudolf In wie fern lohnt sich C++ für einen Javaentwickler Allgemeine Java-Themen 70
A Selbsterstellte 404-Seiten bestimmen, die sich als 200 ausgeben Allgemeine Java-Themen 8

Ähnliche Java Themen

Neue Themen


Oben