# Konsoleneingabe



## TomSto (12. August 2004)

Hallo! 
Habe das Forum dursucht, bin aber leider nicht fündig geworden.

Ich möchte gerne, per Konsoleneingabe Parameter empfangen. 
Z.B. benötige ich in meinem Programm die Information, wie denn die Datei heißt, welche "bearbeitet" werden soll.
Das Programm läuft in der DOsbox. Dort soll dann der Name der Datei abgefragt werden und dann in einer Variable gespeichert werden, damit ich weiterarbeiten kann. 

Den Dateinamen kann ich nicht festlegen, da er sich immer wieder ändert (tägliche Statistik) 

Das Programm liefert einige Konsolenausgaben, welche ich bei bedarf (möchten sie... ja / nein) in einer Textdatei hinterlegen kann, hierzu benötige ich auch eine Parametereingabe.

Wie funktioiert solch eine Konsolenabfrage und wie leite ich die Ausgabe in eine Textdatei um, wenn dies per Abfrage erwünscht ist?

Danke für eure Hilfe!


----------



## Thomas Darimont (12. August 2004)

Siehe hier:

http://www.tutorials.de/forum/showthread.php?threadid=151919&highlight=Standardeingabe+lesen

Gruß Tom


----------



## TomSto (12. August 2004)

Danke!
Komisch, dass ich das nicht gefunden habe.

Die Eingabe funktioniert soweit. Aber wenn ich z.B. was eingegeben habe, wird es mir wieder ausgegeben und erwartet eine neue Eingabe. Die Aufforderung kann ich dann auch nicht beenden. 
Was muss ich ändern? 
Danke.

PS: 
ist es möglich die konsolenausgabe in einem txt zu speichern?


----------



## Thomas Darimont (12. August 2004)

Hallo!


```
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class ReadStdIn {

	public static void main(String[] args) {
		BufferedReader br =
			new BufferedReader(new InputStreamReader(System.in));

		List lines = new ArrayList();

		String line = null;
		String exitCode = "EXIT";
		System.out.println("Zum beenden der Eingabe EXIT eingeben.");
		try {
			while ((line = br.readLine()) != null && !line.equals("EXIT")) {
				lines.add(line);
			}

			br.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		System.out.println(lines);
	}
}
```



> PS:
> ist es möglich die konsolenausgabe in einem txt zu speichern?


Jap ...


```
FileWriter fw = new FileWriter(new OutputStreamWriter(System.out));
...
fw.flush();
fw.close();
```

Gruß Tom


----------



## TomSto (12. August 2004)

Danke Tom.

Was genau muss ich ändern, wenn ich nur *eine* Eingabe akzeptieren möchte?
Sprich man macht seine Eingabe drückt Enter und das Programm speichert die Eingabe als String und fährt mit dem Rest des Programmes fort 

gruss 

Sorry, dass ich Dich schonwieder fragen muss... :-(


----------



## Thomas Darimont (12. August 2004)

Hallo!


```
try {
   line = br.readLine();
   br.close();
} catch (IOException e) {
   e.printStackTrace();
}
```

Gruß Tom


----------



## TomSto (13. August 2004)

*DANKE*

Danke Tom. Läuft perfekt.

gruss


----------



## TomSto (16. August 2004)

Hi Tom!

Ich versuche gerade den Inhalt der Konsole in die TExtdatei umzuleiten und habe da ein paar Probleme:



> _Original geschrieben von Thomas Darimont _
> 
> 
> 
> ...



Bei der Initialisierung die du hier verwendest bekomme ich folgenden Fehler:

The constructor FileWriter(OutputStreamWriter) is undefined

Ich habe es mal so probiert:


```
FileWriter fw = null;
    	OutputStreamWriter out = null;
try
      {
          out = new OutputStreamWriter (System.out);
          fw = new FileWriter(Dateiname);
          fw.write(out.flush());
          out.close();
          fw.close();

      }//try
```

Von meinem Verständins her, denke ich mir das so:
mit fw.write schreibe ich in das Textfile, mit out.flush() den Inhalt der Konsole/der noch gepufferten Daten.

nur leider bekomme ich fw.write(out.flush()); eine Fehlermeldung:

The method write(int) in the type OutputStreamWriter is not applicable for the arguments (void).

Kannst du mir viell. bitte weiterhelfen?!

Danke!


----------



## teppi (17. August 2004)

```
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.FileWriter;

public class IO_Test {

	public static void main(String[] args) {
		try{		
		BufferedReader br =
			new BufferedReader(new InputStreamReader(System.in));
		System.out.print("Input: ");
		String Eingabe = br.readLine();
		FileWriter fw = new FileWriter("bla.txt");
		fw.write(Eingabe);
		fw.close();} catch (IOException e) {e.printStackTrace();}
	}
}
```

MfG Stefan


----------



## TomSto (17. August 2004)

Hey Teppi,

Danke für deine Hilfe, aber das mit dem Einlesen innerhalb der Konole habe ich ja schon gelöst!  



> _Original geschrieben von TomSto _
> *Danke Tom. Läuft perfekt.
> 
> gruss *


----------



## teppi (17. August 2004)

Ja, das habe ich erst danach gesehen :/ ..


----------

