# Hilfe bei Streams für Eingabe und Datei lesen



## schnitzelbank (21. Mai 2009)

hi leute und zwar hab ich folgende aufgebe. kann mir die einer lösen..das wäre so super


Aufgabe:

Teil a:

Schreiben sie eine Applikation, die eine beliebige Textdatei einliest und zeilenweise mit vorangestellten Zeilennummern auf der Konsole ausgibt.

Der Dateiname soll beim Start der Applikation auf der Konsole (Standardeingabe) eingegeben werden. Fehler beim Öffnen der Datei z.B. durch einen ungültigen Dateinamen sollen durch Applikation abgefangen werden und es soll solange erneut zur Eingabe eines Dateinamens aufgefordert werden, bis die Datei sich fehlerfrei öffnen lässt.
*Hinweis:* Verwenden Sie zur Eingabe des Dateinamens die Klasse _Scanner_.

Teil b:

Finden Sie durch Ausführe Ihrer Applikation in Aufgabenteil a) herraus, welche Exception ausgelöst wird, wenn die Eingabe des Dateinamens durch drücken von CTRL-C abgebrochen wird.

Fangen Sie diese Exception in Ihrer Applikation ebenfalls ab und geben Sie die Meldung "Programm abgebrochen" aus. Nach der Ausgabe dieser Meldung soll Ihre Applikation beendet werden.





ICH Bitte euch um hilfe.....


----------



## schnitzelbank (21. Mai 2009)

also das is natürlich nur der zweite teil meiner aufgabe den erstel aufgabenteil habe ich alleine hinbekommen, aber bei diesem teil bin ich wirklich total überfragt


----------



## Hutmacher (21. Mai 2009)

Warum sollten wir deine Aufgaben lösen? Dafür ist ein Forum nicht da. Sowas stirbt scheinbar nie aus …
Hast du dir schon Gedanken gemacht? Entwürfe?

Am besten beschäftigst du dich mal mit _Streams_. Für die Zeilennummern verweise ich auf den _LineNumberReader_ (der eigentlich nur ein erweiterter BufferedReader ist, also musst du ihn nicht weiter mit einem BufferedReader verschachteln).

Am besten liest du dir einmal das Kapitel 14 der Insel durch: Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 14 Dateien und Datenströme

Für Teil b) empfehle ich Exception-Handling: Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 8 Exceptions

Und jetzt viel Erfolg und Spaß beim Lesen ^^


----------



## L-ectron-X (21. Mai 2009)

Wird so lange verschoben, bis eigenständige Aktionen vom TO erkennbar sind.


----------



## schnitzelbank (21. Mai 2009)

hey hab ich hier schon nen richtigen ansatz?


```
import java.io.*;
import java.text.*;
import java.util.*;

public class scanner2 {
	public static void main( String[] args ) 
	  { 
		
		System.out.println( "Dateiname Eingeben:" );
		try {
	    	LineNumberReader in = new LineNumberReader(
	    			 
	    			new InputStreamReader( System.in ) );
		
		for ( String Dateiname : args ) { 
	      try { 
	       
	            
	        } 
	        finally { 
	          in.close(); 
	        }{
	     
	      catch ( IOException e ) { 
	        System.err.println( "Programm abgebrochen " ); 
	        System.exit( 1 ); 
	      } 
		 } // end for 
	  } 
}
```


----------



## L-ectron-X (21. Mai 2009)

Du sollst doch die Klasse java.util.Scanner zum Einlesen benutzen...


----------



## schnitzelbank (21. Mai 2009)

hi, wie gesagt ich kenn mich mit java nich so aus, deswegen probiere ich mal mit dem was ich so kenn..

hab das jetzt so gemacht...

package übung;


import java.io.*;



public class scanner2 {
	public static void main( String[] args )throws IOException

	  { InputStreamReader Scan = new InputStreamReader(System.in);
	  BufferedReader scani = new BufferedReader(Scan);
	  System.out.println( "Dateiname Eingeben:" );
	  String Eingabe = scani.readLine();
	  int alter = Integer.parseInt(Eingabe);

	  if (alter >= 45)

		  try{

			LineNumberReader reader = new LineNumberReader(new BufferedReader(new FileReader("C:/45.txt")));
			while(reader.readLine() != null){
				int Line = reader.getLineNumber();
				String text = reader.readLine();
				System.out.print(Line);
				System.out.println(text);
			}



		  }



	      catch ( IOException e ) { 
	        System.err.println( "Programm abgebrochen " ); 
	        System.exit( 1 ); 
	      } 
		 } 
	  }


----------



## schnitzelbank (21. Mai 2009)

und wenn ich ja scanner benutze am anfang, dann kommt der ja mit dem buffer reader durcheinander


----------



## schnitzelbank (21. Mai 2009)

kann mir hier denn keiner helfe und zeigen wies richtig geht?


----------

