Textdatei einlesen

S

sarahmaus

Gast
Hallo leute,
ich habe ein großes problem. ich soll eine klasse ArbeiteMitTextDatei erstellen. diese soll die klasse:
public boolean leseTextDatei(): Diese Methode liest solange einen Dateinamen
einer Textdatei vom Bildschirm ein (maximal jedoch 5-mal), bis diese Datei zum Lesen
von Daten ge¨offnet werden kann. Anschließend werden die Zeilen dieser Datei eingelesen
und die eingelesenen Zeilen werden in einem Container-Datenfeld gespeichert. Konnte
die Datei erfolgreich eingelesen werden, wird true ansonsten false zur¨uckgegeben.

beinhalten. leider hab ich keine ahnung wie das geht. kann mir vll einer helfen?

gruß sarah
 
Zuletzt bearbeitet von einem Moderator:

F.S.WhiTeY

Bekanntes Mitglied
Hallo Sarah,

deine ansprechpartner für dieses problem ist jedes java.io und java.nio tutorial.

Hier mal ein kleiner ausflug dahin, ich benutze java.io .

Wir wollen also einen hadelsüblichen dateinamen vom Bildschirm einlesen... nun das ist einfach, wir biegen den system.in stream einfach um und können so den benutzer zur eingabe auffordern.

hier eine beispielmethode:


Java:
public final boolean LeseDateinamenEin(){
		
		boolean istEingelesen = true;
		
		System.out.println("Bitte geben sie einen Dateinamen ein!!");
		
		BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
		
		try{
			this.fileName = buffer.readLine();
		}catch (Exception e){
			istEingelesen=false;
			e.printStackTrace();
		}
		
		
		System.out.println("Sie haben folgenden Dateinamen eingegeben:"+" "+this.fileName);
		
		return istEingelesen;
		
	}

nun wollen wir die datei einlesen undzwar zeilenweise... die ergebnisse speichern wir in einer dynamischen Datenstrucktur, da wir nie wissen wieviele zeilen die datei hat.

Ich nehme hierfür eine LinkedLis, zu deutsch eine Verkettete Liste.

Beispielmethode:

Java:
	public boolean LeseDateiEin(){
	boolean istEingelesen = true;
	
	
	try {
    FileReader fin = new FileReader(this.fileName);
	BufferedReader buffer= new BufferedReader( fin );
	String zeile = buffer.readLine();
	zeilen.add(zeile);
	while(zeile != null){
		zeile = buffer.readLine();
		zeilen.add(zeile);
	}
		
	} catch (Exception e) {
		istEingelesen=false;
		e.printStackTrace();
	}
	
	
	return istEingelesen;
	}


Insgesammt sehe die Klasse so aus:

Java:
package hausaufgabenhilfe;

import java.io.*;
import java.nio.*;
import java.nio.channels.FileChannel;
import java.util.*;
public class DateiEinlesen {
	
	
	String fileName;
	LinkedList<String> zeilen = new LinkedList<String>();
	
	public final boolean LeseDateinamenEin(){
		
		boolean istEingelesen = true;
		
		System.out.println("Bitte geben sie einen Dateinamen ein!!");
		
		BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
		
		try{
			this.fileName = buffer.readLine();
		}catch (Exception e){
			istEingelesen=false;
			e.printStackTrace();
		}
		
		
		System.out.println("Sie haben folgenden Dateinamen eingegeben:"+" "+this.fileName);
		
		return istEingelesen;
		
	}
	
	
	public boolean LeseDateiEin(){
	boolean istEingelesen = true;
	
	
	try {
    FileReader fin = new FileReader(this.fileName);
	BufferedReader buffer= new BufferedReader( fin );
	String zeile = buffer.readLine();
	zeilen.add(zeile);
	while(zeile != null){
		zeile = buffer.readLine();
		zeilen.add(zeile);
	}
		
	} catch (Exception e) {
		istEingelesen=false;
		e.printStackTrace();
	}
	
	
	return istEingelesen;
	}
}

so ich hoffe das bringt dich weiter..

ein gutes Tutorial ist übrigens :

http://www.cs.brown.edu/courses/cs161/papers/j-nio-ltr.pdf

wenn du mit java.nio arbeiten möchtest, was ich dir schwer empfehlen würde. schon alleine da du abfragen musst ob eine datei lesebereit ist.

HTH

WhiTeY
 
S

sarahmaus

Gast
erstmal ist die zweite klasse eine methode;)

naja mein problem ist, dass ich nicht weiß wie ich das machen soll. studiere eigendlich chemie und ich hab mich durch den kurs mitschleppen lassen und jetzt ist es zu spät alles nachzuholen;(
ich soll das mit bluej erstellen und muss es bis heute abend abgeben sonst muss ich den kurs nochmal machen.
 

F.S.WhiTeY

Bekanntes Mitglied
Ich habe dir schon fast alles aufs silbertablett gelegt.. ich könnte dir deine aufgabe auch fertig schreiben aber... lernen durch schmerzen ?!
 
S

sarahmaus

Gast
ou mann...ich versuch das jetzt schon die ganze zeit mit bluej....iwi klappt das nicht;(
 

F.S.WhiTeY

Bekanntes Mitglied
irgendwie klappt es nicht ist kein ansatz der mich dazu verleitet dir zu helfen.

Poste bitte:

1. Deinen code
2. Deine Probleme oder den Fehler
3. vilt. Denkansätze bei deinen du nicht weiterkommst
 

Neue Themen


Oben