Zeilenweise einlesen

Evildick

Mitglied
Hallo Leute,

ich möchte aus einer txt-Datei zeilenweise Text auslesen und fand dafür folgenden codeschnippsel im netz.

[Java] try {
BufferedReader in = new BufferedReader(new FileReader("text.txt"));
String zeile = null;
while ((zeile = in.readLine()) != null) {
System.out.println("Gelesene Zeile: " + zeile);
}
} catch (IOException e) {
e.printStackTrace();
} [/code]

Wollte nun versuchen das in ne Klasse zu packen und diese dann "anzusteuern" - sofern das geht. Bin absoluter Java-Neuling also hoffe ich ich mache keinen all zu grossen mist... Könnt ihr mir sagen ob dass so oder so ähnlich funktioniert?


Java:
 import java.io.*;
import java.awt.*;

class einLesen {
	
	try {
        BufferedReader in = new BufferedReader(new FileReader("text.txt"));
        String zeile = null;
        while ((zeile = in.readLine()) != null) {
            System.out.println("Gelesene Zeile: " + zeile);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }

public class SVGP {
	
	public static void main(String[] args) {
	einLesen();	
	}
}
}
 
Könnt ihr mir sagen ob dass so oder so ähnlich funktioniert?

wie wäre es , wenn du es einfach mal ausprobierst? aber nein, so funktioniert das nicht 😀


du rufst
[c]einLesen(); [/c] auf. so heißt aber die klasse und nicht die methode(bzw du hast garkeine!)

definiere in der klasse einLesen(die du besser umbennen solltest) eine statische methode, wo dann das mit dme try & catch reinkommt, dann sollte es laufen.
 
Versuchs mal so:

Java:
import java.io.*;

public class SVGP {
 
    public void einLesen() {
    
        try {
            BufferedReader in = new BufferedReader(new FileReader("text.txt"));
            String zeile = null;
            while ((zeile = in.readLine()) != null) {
                System.out.println("Gelesene Zeile: " + zeile);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
    public static void main(String[] args) {
        SVGP svgp = new SVGP();
        svgp.einLesen(); 
    }
}
 
Hi,

muss es denn zwingend eine separate Klasse sein?

Ansonsten kannst du das auch einfach in eine Methode packen.

Zum Beispiel so:

Java:
 import java.io.*;
import java.awt.*;
 
public class Einlesen {

  public void read() {
    
    try {
        BufferedReader in = new BufferedReader(new FileReader("text.txt"));
        String zeile = null;
        while ((zeile = in.readLine()) != null) {
            System.out.println("Gelesene Zeile: " + zeile);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
  }

    
    public static void main(String[] args) {
      Einlesen e = new Einlesen();
      e.read();
    }
}
}

Tipp: Klassennamen beginnen immer groß.

/edit: grummel, schon wieder zu langsam 😛ueh:
 
das wird nicht funktionieren...

2 Dinge warum nicht:
1. Du deklarierst eine klasse ohne methode versuchst dadrinne aber berechnungen zu machen... geht nicht, bau dir eine klasse un klatsch dir da zwei methoden rein (main + einlesen)
2. deine main methode hat kein objekt erzeugt und keine "static reference" gehabt, kurzum, die hätte net gewusst was sie mit "einLesen();" tun soll.

Nen tipp dazu, schau dir mal genau an wie du klassen und wie methoden schreibst 😉 dann kannste au sowas verhindern.

Java:
import java.io.*;

class EinLesen
{
	public void einlesen()
	{
		try
		{
			BufferedReader in = new BufferedReader(new FileReader("text.txt"));
			String zeile = null;
			while ((zeile = in.readLine()) != null)
			{
				System.out.println("Gelesene Zeile: " + zeile);
			}
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
	}
	
	public static void main(String[] args)
	{
		EinLesen el = new EinLesen();
		el.einlesen();
	}
}
 
Vielen Dank für die Antworten... Ich werd mir jetzt wohl erstmal nen kleinen Exkurs zum Thema Klassen und Methoden ansehen...

In ne extra Klasse wollte ich das haben weil ich halt in dem Programm noch irgendwie mit Batik ne SVG Datei erstellen soll, und das klappt GARNICHT =/
 

Zurück
Oben