Textdateien einlesen und diese anzeigen

julia123

Erfahrenes Mitglied
ich glaub ich bin jetzt dahinter gekommen ( zudem was ich oben gepostet hab). naja egal

zurück zu deinem typ: "Das solltest du übrigens in deinen IF-Block schreiben. Denn falls der Benutzer keine Datei ausgewählt hat, bekommst du wahrscheinlich wieder eine Exception."

ich hab das so gemacht aber das ist funktioniert nicht so wie ich möchte...


Code:
if (chooser.getSelectedFile().getName() != null) {

			try{
			Path path = chooser.getSelectedFile().toPath();

			String content = new String(Files.readAllBytes(path),
					Charset.defaultCharset());
			System.out.println(content);
			}catch(FileNotFoundException)
		}
 

javaDeveloper2011

Erfahrenes Mitglied
Hi Julia,

statt
Java:
catch(FileNotFoundException)
müsste es heißen
Java:
catch(FileNotFoundException ex){
// ...
}

Das "ex" ist der Name des Exception-Opjektes, du kannst so z.B. mit ex.getMessage() weitere Details bekommen.
Die Geschweiften Klammern umschließen Code, der nur ausgeführt wird, wenn die Exception auftritt.
Dort könnte statt "// ..." also z.B. stehen System.err.println("Datei wurde nicht gefunden!");

Ansich ist hier aber weder
if(chooser.getSelectedFile().getName() != null)
noch das try + catch nötig, da der JFileChooser sowieso nur das Auswählen von existierenden Datein erlaubt.
mit if (rueckgabeWert == JFileChooser.APPROVE_OPTION) { ist also schon alles abgedeckt.

Gruß
javaDeveloper2011
 

julia123

Erfahrenes Mitglied
also ich hab um das programm später bisschen zu ordnen schon mal das gemacht:
hier fang ich den fehler mit einer "IOException e"

Code:
public static String chooser() {
		// JFileChooser-Objekt erstellen
		JFileChooser chooser = new JFileChooser();
		// Dialog zum Oeffnen von Dateien anzeigen
		int rueckgabeWert = chooser.showOpenDialog(null);

		/* Abfrage, ob auf "Öffnen" geklickt wurde */
		if (rueckgabeWert == JFileChooser.APPROVE_OPTION) {
			// Ausgabe der ausgewaehlten Datei
			System.out.println("Die zu öffnende Datei ist: "
					+ chooser.getSelectedFile().getName());

			return chooser.getSelectedFile().getAbsolutePath();
		}
		return null;

	}

	public static String readTXT(String txtDatei) {

		Path path = Paths.get(txtDatei);

		String content = null;
		try {
			content = new String(Files.readAllBytes(path),
					Charset.defaultCharset());
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return content;

	}

in zeile 28 muss ich jetzt nach deiner meinung eine "FileNotFoundException ex" werfen richtig?
 

javaDeveloper2011

Erfahrenes Mitglied
Hi Julia,

ne da hast du was falsch verstanden, an deinem Code muss erstmal nichts verändert werden.
Ich wollte dir nur erklären wozu Exceptions da sind und wie sie funktionieren.

Gruß
javaDeveloper2011