Wie kann ich mit Java eine Textdatei auslesen?

Status
Nicht offen für weitere Antworten.

gsvd

Mitglied
Hallo!

Mein Name ist Gerd Schoolmann und ich bin heute zum ersten Mal in diesem Forum. Ich habe folgendes Problem:

Meine Aufgabe besteht darin, ein Projekt zu entwickeln, dass den Inhalt einer beliebigen Textdatei ausliest und die darin einhaltenen Anweisungen ausführt (z.B. Lade Bild01.gif, mache das Fenster x*y Pixel gross, hole Koordinaten und zeige sie auf einer dazugehörigen Landkarte an). Leider komme ich im Moment keinen Schritt weiter, da nicht mal das Auslesen der Textdatei hinhaut.

Hier der Quellcode:
Code:
import java.io.*; 

public class meinersterVersuch { 
  public static void main(String args[]){ 
	einlesen();
  } 

static String einlesen(){ 
	try{ 
  File Datei = new File("C:\\Dokumente und Einstellungen/gs/Eigene Dateien/test.txt"); 
  Datei.canRead(); //testet ob die Datei gelesen werden kann - wenn nicht, dann Exception 
  String dat = Datei.getName(); 
  BufferedReader br = new BufferedReader( 
	new InputStreamReader( 
	  new FileInputStream(Datei))); 

  StringBuffer inhalt = new StringBuffer(); 
  String line; 
  while ( (line = br.readLine()) != null) { 
	inhalt.append(line); 
  } 
  String gesamt = inhalt.toString(); 
  //return gesamt; 
} 
catch(IOException e){ 
  if (e instanceof FileNotFoundException) 
	System.err.println("Datei nicht vorhanden!"); 
  else 
	System.err.println("Fehler beim Lesen!"); 
  System.exit(-1); 
} 
return "";


  } 


}

Schon mal vielen Dank für Eure Hilfe!

Gerd
 
B

Beni

Gast
Hallo Gerd

Was bedeutet "nicht hinhauen"? Bekommst du eine Exception? welche? Was ist die Fehlermeldung (Ausgabe von e.printStackTrace() )? oder...?

mfg Beni
 
B

bygones

Gast
also wenn ich deinen Code nehme und eine beliebige Datei einsetze geht alles ohne Probleme.

Ich denke der Pfad ist nicht richtig ?! Wenn du nach dem FIle Objekt mal ein System.out.println(file.isFile()) machst siehst du ob es eine Datei ist....
Meines Wissens ist der Trenner unter Windows nicht / sondern \
also statt
Code:
"C:\\Dokumente und Einstellungen/gs/Eigene Dateien/test.txt"
Code:
"C:\\Dokumente und Einstellungen\\gs\\Eigene Dateien\\test.txt"
?!

PS: Ein kleiner Hinweis noch: Klassen werden in Java immer mit Großbuchstaben begonnen, Variablen sind immer kleingeschrieben !!

Noch besser ist es die Dateien nicht mit einem festcodierten Trenner zu verbinden, sondern z.B. File.seperator zu nehmen !!
 
B

Beni

Gast
Ich hab den Code auch ausprobiert. Er funktioniert. (File Datei = new File("e:/temp/test.txt"); )

Hm, "return gesamt" hast du absichtlich auskommentiert? Denn hier würde das Ergebnis ja zurückgegeben.

mfg Beni
 
B

bygones

Gast
Beni hat gesagt.:
Ich hab den Code auch ausprobiert. Er funktioniert. (File Datei = new File("e:/temp/test.txt"); )

Hm, "return gesamt" hast du absichtlich auskommentiert? Denn hier würde das Ergebnis ja zurückgegeben.

mfg Beni

:roll: :wink: Stimmt, du darfst natürlich das System.out.println() nicht vergessen !!! *g*
 

gsvd

Mitglied
Hmmm....
Wenn ich es wie folgt mache, gibt er mir den String aus, nicht aber den Inhalt der Textdatei...und das will ich erreichen.
Code:
File Datei = new File("C:\\Dokumente und Einstellungen/gs/Eigene Dateien/test.txt");
  System.out.println(Datei);
 
B

bygones

Gast
Mach mal deinen Kommentar bei "return gesamt" weg und in der main methode:
Code:
System.out.println(einlesen());
 

gsvd

Mitglied
DANKE!

Das funktioniert jetzt! Jetzt muss ich nur noch rauskriegen, wie ich den Dateiinhalt in einem Fenster anzeigen lasse :cry:
 
B

bygones

Gast
Tsja, da such mal schön bei Swing oder AWT :wink:

Und stelle deine Fragen in das dazughörige Forum.... bis bald :###
 

bernd

Bekanntes Mitglied
Vieleicht hilft dir das:
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;

/**
  *
  * Beschreibung.
  *
  * @version 1.0 vom 14.08.2004
  * @author 
  */

public class EZettel1 extends JFrame {
  // Anfang Variablen
  private JTextArea jta1 = new JTextArea("", 1, 1);
  private JButton jbuspeichern = new JButton();
  private String dname = "EZettel.txt";
  private PrintWriter ausgabeDatei;
  private BufferedReader eingabeDatei;
  private String zeile;
  private JButton jbuladen = new JButton();

  // Ende Variablen

  public EZettel1(final String title) {
    // Frame-Initialisierung
    super("Einkauf-Zettel");
    addWindowListener(new WindowAdapter() {
      public void windowClosing(final WindowEvent evt) { System.exit(0); } });
    setBounds(10, 10, 400, 415);
    Container cp = getContentPane();
    cp.setLayout(null);

    // Anfang Komponenten

    jta1.setLineWrap(true);
    jta1.setBounds(5, 40, 380, 300);
    getContentPane().add(jta1);
    jbuspeichern.setText("speichern");
    jbuspeichern.setBounds(5, 350, 100, 25);
    getContentPane().add(jbuspeichern);
    jbuspeichern.addActionListener(new ActionListener() {
      public void actionPerformed(final ActionEvent evt) {
        jbuspeichernActionPerformed(evt); } });

    jbuladen.setText("laden");
    jbuladen.setBounds(110, 350, 100, 25);
    getContentPane().add(jbuladen);
    jbuladen.addActionListener(new ActionListener() {
      public void actionPerformed(final ActionEvent evt) {
        jbuladenActionPerformed(evt); } });

    // Ende Komponenten

    setVisible(true);
  }

  // Anfang Ereignisprozeduren
  public void jbuspeichernActionPerformed(final ActionEvent evt) {
       try {
         ausgabeDatei = new PrintWriter(new FileWriter(dname, true));  // erstellt die Datei
         ausgabeDatei.print(jta1.getText());
         ausgabeDatei.close();
       }
       catch (IOException e) {
         System.err.println("Dateifehler "+e.toString());
         System.exit(1);
       }
       jta1.setText("");   // leert das TextArea
   }
  public void jbuladenActionPerformed(final ActionEvent evt) {
       try {
         eingabeDatei = new BufferedReader(new FileReader(dname));  // ließt die Datei aus
         while ((zeile = eingabeDatei.readLine()) != null) {
           jta1.setText(jta1.getText()+ zeile + "\n");  // zeigt den Dateiinhalt an
         }
         eingabeDatei.close();
       }
       catch (Exception e) {
         System.err.println("Fehler bei Datei "+e.toString());
         System.exit(1);
       }
  }
  // Ende Ereignisprozeduren

  public static void main(final String[] args) {
    new EZettel1("EZettel1");
    
  }
 }
 

Gubi

Mitglied
mal ne frage dazu...

kann man den quellcode...

Code:
import java.io.*; 

public class meinersterVersuch { 
  public static void main(String args[]){ 
        einlesen(); 
        System.out.println(einlesen());
  } 

static String einlesen(){ 
   try{ 
  File Datei = new File("C:\\zug.txt");
  Datei.canRead(); //testet ob die Datei gelesen werden kann - wenn nicht, dann Exception 
  String dat = Datei.getName(); 
  BufferedReader br = new BufferedReader( 
   new InputStreamReader( 
     new FileInputStream(Datei))); 
  

  StringBuffer inhalt = new StringBuffer(); 
  String line; 
  while ( (line = br.readLine()) != null) { 
   inhalt.append(line); 
  } 
  String gesamt = inhalt.toString(); 
  return gesamt; 
  
} 
catch(IOException e){ 
  if (e instanceof FileNotFoundException) 
   System.err.println("Datei nicht vorhanden!"); 
  else 
   System.err.println("Fehler beim Lesen!"); 
  System.exit(-1); 
} 
return ""; 

  }

so abändern, dass er die txt datei in einer JTextArea Komponente wieder gibt? Wenn ja, wie?
 

meez

Top Contributor
Code:
JTextArea ta = ...

BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream("<datei>")));
String text="";
for(String buffer;(buffer = in.readLine()) != null)text+=buffer);
ta.setText(text);

EDIT: Es soll mir jetzt keiner blöd kommen wegen text+=buffer, denn:

String buffers are used by the compiler to implement the binary string concatenation operator +. For example, the code:
x = "a" + 4 + "c"
is compiled to the equivalent of:
x = new StringBuffer().append("a").append(4).append("c").toString()

;)
 

Gubi

Mitglied
wohin damit?

Code:
BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream("<datei>"))); 
String text=""; 
for(String buffer;(buffer = in.readLine()) != null)text+=buffer); 
ta.setText(text);
 

meez

Top Contributor
Code:
import java.awt.*;
import javax.swing.*;
import java.io.*;

public class meinersterVersuch extends JFrame {
   private JTextArea ta;

   public meinersterVersuch()  {
      ta = new JTextArea().      
      ta.setText(einlesen());     
      super.getContentPane().add(ta, BorderLayout.CENTER);
   }


  private String einlesen() {
    try {
        BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream("C:\\zug.txt"))); 
        String text=""; 
        for(String buffer;(buffer = in.readLine()) != null)text+=buffer); 
        return text;
    }catch (IOException io) {
       io.printStackTrace();
      return "";
   }
   }

  public static void main(String[] x) {
      new meinersterVersuch().show();
  }
}
 

Gubi

Mitglied
beim compilieren gibts einen fehler in diesen beiden zeilen:

Code:
for(String buffer;(buffer = in.readLine()) != null)text+=buffer); 
        return text;

------------------------------------------
meinersterVersuch.java [19:1] ';' expected
for(String buffer;(buffer = in.readLine()) != null)text+=buffer);
^
meinersterVersuch.java [20:1] illegal start of expression
return text;
^
meinersterVersuch.java [20:1] ')' expected
return text;
^
3 errors
Errors compiling meinersterVersuch.
-------------------------------------------------
 
B

Beni

Gast
Gubi hat gesagt.:
meinersterVersuch.java [19:1] ';' expected
for(String buffer;(buffer = in.readLine()) != null)text+=buffer);
^

Selbst wenns dein erster Versuch ist, Fehlermeldungen sollte man halt schon lesen...

Code:
for(String buffer;(buffer = in.readLine()) != null); text+=buffer);
 
B

Beni

Gast
Sorry für den ruppigen Tonfall, das ";" sprang mir einfach so ins Auge...

Versuchs mal mit einer Klammer weniger:
Code:
for(String buffer;(buffer = in.readLine()) != null; text+=buffer);
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
P Java Selenium . Parameterized.Parameters erzeugt eine Fehlermeldung Java Basics - Anfänger-Themen 14
A Wie führe ich eine Batch-Datei von meiner Java-Anwendung aus? Java Basics - Anfänger-Themen 18
jeff98 Wie kann man in Java eine Zeichenformation ausgeben? Java Basics - Anfänger-Themen 9
frager2345 Singleton-Muster Java ->Nur eine Instanz einer Klasse erzeugen können Java Basics - Anfänger-Themen 45
berserkerdq2 Findet eine parallele Verarbeitung in Java bei Threads erst statt, wenn man die Methoden auch synchronized? Und wie sieht bei Conditions aus? Java Basics - Anfänger-Themen 8
JordenJost Java ist auch eine Insel für Anfänger Java Basics - Anfänger-Themen 2
sserio Java Fx, wie erstellt man einen EventHandler, der durch das Drücken eines Button Texte in eine Table view einfügt Java Basics - Anfänger-Themen 17
A Wenn eine Zahl durch 7 teilbar ist, soll statt der Zahl ein ‘*‘ angezeigt werden. java? Java Basics - Anfänger-Themen 47
K Präzedenregeln in Java sagen, dass +expr und -expr vor + von Addition und - von Addition stehen, warum wird dann z. B. a+b als eine Addition ausgeführ Java Basics - Anfänger-Themen 7
J Alle .java Dateien von einem Verzeichnis in eine Zip speichern Java Basics - Anfänger-Themen 2
TimoN11 Java - Eine oder mehrere Eingaben möglich machen Java Basics - Anfänger-Themen 6
C Methoden Java ist auch eine Insel Listing 2.40 Recursion Java Basics - Anfänger-Themen 7
M Wie kann ich eine Eingabe im Java-Swing übergeben? Java Basics - Anfänger-Themen 1
C Java liest nur eine Zeile ein Java Basics - Anfänger-Themen 3
Aprendiendo Gibt es in der JAVA-API eine Funktion, die eine Dezimalzahl in eine binäre Zahl umwandelt? Java Basics - Anfänger-Themen 8
F Erste Schritte Java ist auch eine Insel kaufen? Java Basics - Anfänger-Themen 2
B Hilfe bei eine Java-Methode Java Basics - Anfänger-Themen 4
M Erste Schritte Java prüfen ob eine der Möglichkeiten erfüllt ist Java Basics - Anfänger-Themen 2
W Wie kann ich in Java eine Kurve aus Punkten zeichnen? Java Basics - Anfänger-Themen 25
1 Im Java Projekt eine txt datei einbinden? Java Basics - Anfänger-Themen 8
A Hat jemand einen ratschlag, wie java beim replaceALL eine geschweifte klammer erkennt ? Java Basics - Anfänger-Themen 5
D Java erkennt eine deklarierte Variable nicht Java Basics - Anfänger-Themen 2
I Java Eingabe aus einer anderen Klasse in eine andere an Konstruktor übergeben Java Basics - Anfänger-Themen 4
D Türme von Hanoi in "Java ist auch eine Insel" Java Basics - Anfänger-Themen 4
J für eine java klausur Java Basics - Anfänger-Themen 5
Y Wie setze ich genau eine Stückliste (UML) in Java um? Java Basics - Anfänger-Themen 9
S mit Java eine EXE im vordergrund ausführen Java Basics - Anfänger-Themen 3
N Java UML: Eine Frage zu public-Variablen Java Basics - Anfänger-Themen 19
I Variablen Wie initialisiert man in Java eine Variable ohne das Setzen von 0 oder einer anderen Zahl? Java Basics - Anfänger-Themen 8
DaniSahne96 Frage zu Java ist auch eine Insel Java Basics - Anfänger-Themen 12
V Mit JS eine JAVA Methode aufrufen Java Basics - Anfänger-Themen 5
M Mit Java eine HTML-Seite speichern Java Basics - Anfänger-Themen 11
B Variablen Wie macht man eine call by reference mit primitiven Datentypen in Java? Java Basics - Anfänger-Themen 2
J Geldberechner(aus Java ist auch eine Insel) Java Basics - Anfänger-Themen 6
G Erste Schritte JAVA ist auch eine Insel Java Basics - Anfänger-Themen 7
P Java Object das eine HTML Datei repräsentiert Java Basics - Anfänger-Themen 19
A Wie mit Java eine .vbs Datei starten lassen? Java Basics - Anfänger-Themen 4
A Eine Frage zu AWt in JAVA, wie wähle ich ein Punkt aus`? Java Basics - Anfänger-Themen 4
3 Eine HTML Datei in eine Java Datei umschreiben Java Basics - Anfänger-Themen 23
M Was ist genau eine Abstraktion in java Java Basics - Anfänger-Themen 3
H Reflexion: Eine Methode, beliebig viele Parameter (Java 1.4.2) Java Basics - Anfänger-Themen 8
T Java Webstart soll eine Datei speichern Java Basics - Anfänger-Themen 2
C Aus Java eine Javascript Funktion aufrufen Java Basics - Anfänger-Themen 14
T Frage aus dem Buch JAVA ist auch eine Insel Java Basics - Anfänger-Themen 11
N Per Java in ein HTML-Suchfeld eine Variable reinschreiben Java Basics - Anfänger-Themen 4
M Spielt der Debugger bei java eine große Rolle Java Basics - Anfänger-Themen 3
M Aus wieviel Klassen darf in Java eine (Programm)besitzen? Java Basics - Anfänger-Themen 21
2 Mit Java in eine WORD-Datei schreiben Java Basics - Anfänger-Themen 18
X Via Java auf eine Webseite einloggen. Java Basics - Anfänger-Themen 6
R Java, Bluetooth: mit PC eine SPP Verbindung aufbauen Java Basics - Anfänger-Themen 1
schroedi Wie startet man eine JAVA EE Projekt Java Basics - Anfänger-Themen 22
S Codebeispiel aus Java ist auch eine Insel. Java Basics - Anfänger-Themen 2
J Ein Java-Programm in eine *.exe Datei 'packen' Java Basics - Anfänger-Themen 20
G Eine HP mit Java läuft nicht Java Basics - Anfänger-Themen 4
J Aus einem Java Programm eine .java datei Kompilieren Java Basics - Anfänger-Themen 6
G Java Klasse durch eine andere Java Klasse starten? Java Basics - Anfänger-Themen 13
M Java Quellcode in eine exe datei umwandeln Java Basics - Anfänger-Themen 4
W Klasse in eine extra Java-Datei Java Basics - Anfänger-Themen 21
M Mit Java eine neue DB anlegen über XAMPP? Ist das möglich ? Java Basics - Anfänger-Themen 4
V Wie kann ich mit Java eine Tastatureingabe simmulieren ? Java Basics - Anfänger-Themen 26
vogella Mit Java eine Webpage schreiben Java Basics - Anfänger-Themen 7
P mit Java auf eine PowerPoint-Präsentation zugreifen Java Basics - Anfänger-Themen 3
M Datenbankabfrage über eine Java Oberfläche Java Basics - Anfänger-Themen 3
C eine dringende bitte an alle java-programmierer Java Basics - Anfänger-Themen 4
S Daten in eine Variable in einem anderen Java File schreiben Java Basics - Anfänger-Themen 10
T Eine HTML Datei mit Java bear. Wie soll kann man anfangen? Java Basics - Anfänger-Themen 11
T Newbie Frage Eine Java Anwendung fernsteuern? Java Basics - Anfänger-Themen 4
G eine Frage zur Generic Java ? Java Basics - Anfänger-Themen 8
B Mit Java eine Website "steuern" Java Basics - Anfänger-Themen 18
A aus Java-Code eine jar-Datei ausführen Java Basics - Anfänger-Themen 8
T Java ist auch eine Insel: Beispielprogramm fehlerhaft? Java Basics - Anfänger-Themen 2
B Eine Linie zeichnenmit Java, ich verstehe das einfach nicht Java Basics - Anfänger-Themen 4
C Aus Java eine Email wo der Body den Inhalt aus einer .... Java Basics - Anfänger-Themen 6
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
richis-fragen Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben