Portal > Foren > Java > Allgemeine Java-Programmierung > ANSPRUCHSVOLL: Files einlesen und darstellen
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 22.06.2005, 13:56 Nach oben    #1
Muluf
Gast
 
Beiträge: n/a
Standard ANSPRUCHSVOLL: Files einlesen und darstellen

Hallo Leute

Ich habe da ein ziemlich krasses Problem:

Ich will ein Fenster machen mit 3 Buttons. Wenn man auf den Button "Next Produkt" klickt, dann soll in einer TextArea ein externes Textfile eingelesen und dargestellt werden. Beim Button "Last Produkt" soll das letzte angezeigte Textfile eingelesen werden.

Nur habe ich nicht die geringste Ahnung wie das gehen soll. Ich hab im Javabuch.de folgenden Ausschnitt gefunden:

public Image getImage(String filename)

Kann ich das irgendwie auf .txt Dateinen anwenden?:confused:
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 22.06.2005, 14:58 Nach oben    #2
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.512
Standard

Zitat:
Zitat von Muluf
Ich habe da ein ziemlich krasses Problem
Wow

Zitat:
Zitat von Muluf
Ich will ein Fenster machen mit 3 Buttons. Wenn man auf den Button "Next Produkt" klickt, dann soll in einer TextArea ein externes Textfile eingelesen und dargestellt werden. Beim Button "Last Produkt" soll das letzte angezeigte Textfile eingelesen werden.
Ich fasse zusammen:
  • Button Nummer 1 liest eine Textdatei aus und stellt den Inhalt in der Textarea dar.
  • Button Nummer 2 macht genau das selbe wie Button 1 nur mit einer anderen Textdatei.?!? :rolleyes:
  • Button Nummer 3 ... ähm .. macht anscheinend gar nichts.

Zitat:
Zitat von Muluf
Nur habe ich nicht die geringste Ahnung wie das gehen soll.
Schau mal hier:
--> Java ist auch eine Insel, Kap. 12 Datenströme und Dateien
--> The Java Tutorial, Lesson: I/O: Reading and Writing

Ich hab im Javabuch.de folgenden Ausschnitt gefunden:

Zitat:
Zitat von Muluf
public Image getImage(String filename)

Kann ich das irgendwie auf .txt Dateinen anwenden?:confused:
Ich weiß nicht, was Du uns damit sagen willst bzw. was genau Deine Frage ist ... allerdings sollten Dir obige Links weiterhelfen.

Im Javabuch kannst Du Dir mal das Kapitel 21 durchlesen.

Grüße Ben.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 22.06.2005, 15:54 Nach oben    #3
Muluf
Gast
 
Beiträge: n/a
Standard

Nun ja...

Button1 = Letzer Artikel
Button2 = Nächster Artikel
Button3 = Neues Fenster mit TextArea wo genau wie bei den anderen Buttons .txt Dateien reigelesen werden.

Ich hätte da so an etwas gedacht wo man in nem Ordner einen Text erstellen kann (in einer .txt Datei) und diese bei Druck auf Button2 eingelesen werden.

Ich werd mich etwas einlesen. :rolleyes:
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 22.06.2005, 16:06 Nach oben    #4
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.512
Standard

Zitat:
Zitat von Muluf
Ich hätte da so an etwas gedacht wo man in nem Ordner einen Text erstellen kann (in einer .txt Datei) und diese bei Druck auf Button2 eingelesen werden.
Was meinst Du damit genau?
Sprichst Du jetzt von der Darstellung in der Textarea?

Grüße Ben.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 23.06.2005, 09:14 Nach oben    #5
Boar
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Ben
Zitat:
Zitat von Muluf
Ich hätte da so an etwas gedacht wo man in nem Ordner einen Text erstellen kann (in einer .txt Datei) und diese bei Druck auf Button2 eingelesen werden.
Was meinst Du damit genau?
Sprichst Du jetzt von der Darstellung in der Textarea?

Grüße Ben.
Ich hab das so verstanden, dass Muluf den Text aus einer *.txt Datei auslesen will und dass dieser Text dann in der Textarea angezeigt wird.

Du hast ihm also den richtigen Lesestoff empfohlen.

Hier mal ein Beispiel, wie man aus einer Textdatei liest: (Bin davon ausgegangen, dass die Textarea "text" heißt)
Code:
public void laden()
{
	BufferedReader f;
	String line;

	try
	{
		f = new BufferedReader(
			new FileReader("name.txt"));
		while ((line = f.readLine()) != null)
		{
			text.append(line+"\n");
		}
		f.close();
	}
	catch(IOException ex) {}
}
Gruß, Boar
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 23.06.2005, 11:10 Nach oben    #6
matt
Gast
 
Beiträge: n/a
Standard

Hm nunja, eventuell wäre für dich auch ein Ansatz mit XML Daten sinnvoller (allerdings nur, wenn du eine ungefähre vorstellung von XML hast, sonst ist der lernaufwand zu groß)

Dazu kannst du dir beispielsweise folgendes angucken:
http://www.dpunkt.de/java/Programmie...ava/XML/1.html
das ist finde ich sehr gut erklärt. Der Vorteil hierbei ist, dass du dir die ziemlich mühseligen Streams ersparen kannst und direkt auf die Daten (und ihre Struktur!) zugreifen kannst.

Liebe grüße, Matt
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 23.06.2005, 11:12 Nach oben    #7
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.512
Standard

Ich denke, dass die Arbeit mit XML-Dateien in seinem Fall zu weit hergeholt ist.
Eigentlich wäre dort die Nutzung einer Datenbank angebracht, durch die er dann "durchblättert".
Das ResultSet macht es möglich

Das ist aber aaaaaaaaaaalles nur Spekulation

Grüße Ben.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 23.06.2005, 11:24 Nach oben    #8
matt
Gast
 
Beiträge: n/a
Standard

also ich finde nicht, dass es zu weit hergeholt ist. Denn um ne datenbank zu verwenden brauchst du in der regel einen laufenden Datenbankserver auf deinem System bzw einen der über das internet erreichbar ist. Wenn man das programm nur weitergeben möchte (und das ist ja häufig bei einem Produktkatalog so) wäre es eventuell über XML nicht allzu verkehrt!

Das hätte dann natürlich auch den vorteil, dass man den "Produktkatalog" ganz bequem in browsern anzeigen könnte - über ein CSS bzw. XSLT dokument. Die lösung wäre dann komplett lokal und für die anzeige der HTML version würdest du keine Scriptsprache benötigen (hier ist nur die frage der browserkompatibilität)

ist aber immer wieder interessant, andere standpunkte zu hören.
gespannt auf eine antwort wartend,
Matt
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 23.06.2005, 11:53 Nach oben    #9
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.512
Standard

Zitat:
Zitat von matt
also ich finde nicht, dass es zu weit hergeholt ist. Denn um ne datenbank zu verwenden brauchst du in der regel einen laufenden Datenbankserver auf deinem System bzw einen der über das internet erreichbar ist. Wenn man das programm nur weitergeben möchte (und das ist ja häufig bei einem Produktkatalog so) wäre es eventuell über XML nicht allzu verkehrt!

Das hätte dann natürlich auch den vorteil, dass man den "Produktkatalog" ganz bequem in browsern anzeigen könnte - über ein CSS bzw. XSLT dokument.
Das ist eine gute Argumentation


Ich arbeite gerne mit einer Datenbank im Hintergrund, weil ich so eben nicht lokal "festhänge".

Das ist aber natürlich stark davon abhängig, was man eigentlich machen will.
Ich nutze XML-Files, jetzt nicht nur in Java, eher für die Konfiguration beim Start o.Ä.

Allerdings ist Muluf ja ein Java-Anfänger. In seinem Fall ist es also sicherlich ratsam sich auch mal mit den In- und OutputStreams zu befassen.

Grüße Ben.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 23.06.2005, 13:17 Nach oben    #10
Sesselkleber
 
Benutzerbild von sparrow
 
Registriert seit: 17.01.2005
Beiträge: 581
Standard

In diesem Fall sind beide Lösungen absolut ok.
XML und eine Datenbankanbindung nehmen sich in diesem Fall eigentlich rechte wenig.
Auch eine Datenbank braucht keinen laufenden Datenbankserver wenn man HSQLDB ( http://hsqldb.sourceforge.net ) verwendet und direkt mit in das ausgelieferte Archiv anbindet.

Gruß
Sparrow
sparrow ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 27.06.2005, 08:07 Nach oben    #11
Muluf
Gast
 
Beiträge: n/a
Standard

Danke Leute.

Hmmm. Da ich wie gesagt noch ein Newbie bin würde ich eher auf das einfachste setzen.

Der Vorschlag von Boar wäre genau das was ich mir vorgestellt habe.

Ich werd mal versuchen es anzuwenden.

Thx
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 27.06.2005, 08:52 Nach oben    #12
Muluf
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Boar
Zitat:
Zitat von Ben
Zitat:
Zitat von Muluf
Ich hätte da so an etwas gedacht wo man in nem Ordner einen Text erstellen kann (in einer .txt Datei) und diese bei Druck auf Button2 eingelesen werden.
Was meinst Du damit genau?
Sprichst Du jetzt von der Darstellung in der Textarea?

Grüße Ben.
Ich hab das so verstanden, dass Muluf den Text aus einer *.txt Datei auslesen will und dass dieser Text dann in der Textarea angezeigt wird.

Du hast ihm also den richtigen Lesestoff empfohlen.

Hier mal ein Beispiel, wie man aus einer Textdatei liest: (Bin davon ausgegangen, dass die Textarea "text" heißt)
Code:
public void laden()
{
	BufferedReader f;
	String line;

	try
	{
		f = new BufferedReader(
			new FileReader("name.txt"));
		while ((line = f.readLine()) != null)
		{
			text.append(line+"\n");
		}
		f.close();
	}
	catch(IOException ex) {}
}

Perfekt...

Und wie kann ich das jetz auf den Button tun? Also was muss ich im ActionListener reintun? :confused:

Und das was in der Klammer steht (bei new FileReader), ist das der Pfad den man fürs File angeben muss?
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 27.06.2005, 09:08 Nach oben    #13
Muluf
Gast
 
Beiträge: n/a
Standard

Moment...

Ich hab da so was:

Code:
public class TextLesen
{
  public static void main(String[] args)
  {
	BufferedReader Bf;
	String line;

	try {
	  Bf = new BufferedReader(
		  new FileReader("Pfad/Pfad/text.txt"));
	  while ((line = Bf.readLine()) != null) {
		System.out.println(line);
	  }
	  Bf.close();
	} catch (IOException e) {
	  System.out.println("Fehler beim Lesen der Datei");
	}
  }
}
Nur wird das in der Console von Eclipse ausgegeben...

Probleme:

Wie kann ich das in einer TextArea darstellen?

Wie kann ich das auf Knopfdruck machen?
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 27.06.2005, 09:19 Nach oben    #14
Sesselkleber
 
Benutzerbild von sparrow
 
Registriert seit: 17.01.2005
Beiträge: 581
Standard

Das übersichtlichste wäre es, wenn du die Ausgabe dieses Codes in einen String speicherst und den dann in der TextArea anzeigen läßt.

Zum Speichern im String:

Code:
public class TextLesen
{
  public static void main(String[] args)
  {
	BufferedReader Bf;
             String gesamt ="";
	String line;

	try {
	  Bf = new BufferedReader(
		  new FileReader("Pfad/Pfad/text.txt"));
	  while ((line = Bf.readLine()) != null) {
                          gesamt = gesamt + line;
		System.out.println(line);
	  }
	  Bf.close();
	} catch (IOException e) {
	  System.out.println("Fehler beim Lesen der Datei");
	}
  }
}
Somit steht in deinem String "gesamt" auch das was ausgegeben wurde.
(Aus Performance-Gründen könnte man hier auch auf StringBuffer zurückgreifen)

EDIT: Boah nein.. ich poste nie wieder vorm Aufstehen.
Aber wichtig ist: Es würde funktionieren, auch wenns echt bescheurt aussieht *g*
sparrow ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 27.06.2005, 09:32 Nach oben    #15
Boar
Gast
 
Beiträge: n/a
Standard

Ich hab dir mal ein kleines Beispiel gecodet, bei dem der Text aus einer Datei in einer JTextArea dargestellt wird. Ist ziemlich simpel, aber es erfüllt seinen Zweck. (Die Imports hab ich weggelassen, aber Eclipse sollte dir ja alles Nötige von selbst importieren)

PHP-Code:
public class TextLesen extends JFrame implements ActionListener 
{
    
Container cp getContentPane();
    
JTextArea text = new JTextArea(10,15);
    
JButton button = new JButton("Lesen");
    
    public 
TextLesen()
    {
        
super("TextLesen");
        
this.setSize(300,200);
        
this.setLocation(100,100);
        
this.setResizable(false);
        
this.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE );

        
cp.setLayout(new FlowLayout(FlowLayout.LEFT));
        
cp.add(text);
        
cp.add(button);
               
        
button.addActionListener(this);
        
button.setActionCommand("lesen");
    }
    
    
    public static 
void main(String[] args)
    {
        
TextLesen prog = new TextLesen();
        
prog.setVisible(true);
    }
    
    public 
void actionPerformed(ActionEvent e
    {
        if(
e.getActionCommand().equals("lesen"))
            
lesen();
    }
  
    public 
void lesen()
    {
         
BufferedReader Bf;
          
String line;

           try 
           {
              
Bf = new BufferedReader(
                 new 
FileReader("Pfad/Pfad/text.txt"));
              while ((
line Bf.readLine()) != null
                  
text.append(line+"\n");
              
Bf.close();
         } 
           catch (
IOException e)
           {
            
text.setText("Fehler beim Lesen der Datei");
           }       
    }

Bei Fragen melde dich.

Gruß, Boar
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 27.06.2005, 10:34 Nach oben    #16
Muluf
Gast
 
Beiträge: n/a
Standard

Hmmm.

Ich kanns irgendwie nicht in mein Dokument einbinden:


Code:
	public void actionPerformed(ActionEvent arg0){
		if(button1 == arg0.getSource()) {
			ta.setText("Letzes Produkt");
			
			}

		//if(button2 == arg0.getSource()) {
		//ta.setText("Nächstes Produkt");
			
			if(arg0.getActionCommand().equals("lesen")){
				lesen();
			}
		
    		    		    			public void lesen(){
			
    		    		    		    	BufferedReader Bf;
    		    		    		    	String line;

    		    		    		    	try
	    		    		    			{
    		    		    		    		Bf = new BufferedReader(
    		    		    		    		    	new FileReader("./siedler.txt"));
    		    		    		    		while ((line = Bf.readLine()) != null)
		    		    		    		    	ta.append(line+"\n");
    		    		    		    		Bf.close();
    		    		    		    	}
	    		    		    			catch (IOException e)
	    		    		    			{
    		    		    		    		ta.setText("Fehler beim Lesen der   Datei");
	    		    		    			}}
		
		
		if(button3 == arg0.getSource()) {
			ta.setText("Info");
			
			
		}}
Bei lesen(); hat er ein Problem und dann noch bei den Klammern. Habs fett markiert.
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 27.06.2005, 10:40 Nach oben    #17
Boar
Gast
 
Beiträge: n/a
Standard

Ich sehe in deinem Code keine Markierung. Poste einfach mal die Fehlermeldungen und schreib mir einfach noch mal die "Zeile mit den Klammern", bei der es Probleme gibt.

Gruß, Boar
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 27.06.2005, 10:43 Nach oben    #18
Muluf
Gast
 
Beiträge: n/a
Standard

Ok.

Die Fehler sind hier:

if(arg0.getActionCommand().equals("lesen")){
lesen();

und

{
ta.setText("Fehler beim Lesen der Datei");
}}


Irgendwie hat er Klammerprobleme...
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 27.06.2005, 10:46 Nach oben    #19
Sesselkleber
 
Benutzerbild von sparrow
 
Registriert seit: 17.01.2005
Beiträge: 581
Standard

Zitat:
Zitat von Muluf
Hmmm.

Ich kanns irgendwie nicht in mein Dokument einbinden:

Bei lesen(); hat er ein Problem und dann noch bei den Klammern. Habs fett markiert.


Ähm... seh ich das richtig, dass du die Methode lesen() in der ActionPerformed Methode reingeschustert hast? das dürfte so nicht gehen.

Mußt du als eigene Methode machen:

PHP-Code:
    public void actionPerformed(ActionEvent arg0){
        if(
button1 == arg0.getSource()) {
            
ta.setText("Letzes Produkt");
            
            }

        
//if(button2 == arg0.getSource()) {
        //ta.setText("Nächstes Produkt");
            
            
if(arg0.getActionCommand().equals("lesen")){
                
lesen();
            }
        
                                                
        
        if(
button3 == arg0.getSource()) {
            
ta.setText("Info");
            
            
        }}


public 
void lesen(){
            
                                            
BufferedReader Bf;
                                            
String line;

                                            try
                                            {
                                                
Bf = new BufferedReader(
                                                        new 
FileReader("./siedler.txt"));
                                                while ((
line Bf.readLine()) != null)
                                                    
ta.append(line+"\n");
                                                
Bf.close();
                                            }
                                            catch (
IOException e)
                                            {
                                                
ta.setText("Fehler beim Lesen der   Datei");
                                            }} 
sparrow ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 27.06.2005, 10:50 Nach oben    #20
Muluf
Gast
 
Beiträge: n/a
Standard

Aha.

Gut die Fehler sind weg.

Aber bei Knopfdruck passiert einfach nix...
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
files lassen sich nicht überschreiben mark555 PHP-Programmierung 9 09.01.2006 07:15
Textdatei einlesen geht nur halb?! Steve231 Datenbanken 4 08.11.2005 09:28


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:58 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0