import java.io.*;
public class DateiAusgabe
{
	public static void main(String[] args)
	throws IOException
	{
		BufferedReader din = new BufferedReader( 
		                         new InputStreamReader(System.in));
        String dateiname;
        System.out.print("Geben Sie einen Dateinamen ein: ");
		dateiname = din.readLine();

		// Objekt für den Dateinamen/Existenztest der Datei
		File Datei = new File(dateiname);

		// gepufferter Eingabestrom (bekommt System.in
		// übergeben)
		BufferedReader EingabeLeser;

		// Ausgabeschreiber, der formatierte Ausgabe
		// (println()) unterstützt
		PrintWriter ZeilenausgabeStrom;

		// die aktuelle Eingabezeile
		String EingabeZeile = new String();

		// wenn Datei vorhanden, anderen Namen wählen
		if(Datei.exists())
		{
			System.out.println("Datei ist bereits vorhanden.\n"
			+"Starten Sie mit einem anderen Dateinamen.");
		}
		else
		{
			System.out.println("Geben Sie jetzt den Text ein, "
			+ "der in der Datei gespeichert werden soll:");
			System.out.println("Ende mit \"<crlf>@<crlf>\"");
			try
			{
				// schrittweises Zuordnen der Standardeingabe
				// (stdin), d.h. die Konsole zu einem gepufferten
				// EingabeLeser; sinnvoll, da BufferedReader
				// eine Methode für zeilenweises Lesen aufweist
				EingabeLeser = new BufferedReader(new InputStreamReader(System.in));

				// Ausgabeseite: aus einem FileWrite, der eine
				// Datei ansteuern kann, wird ein PrintWriter
				// erzeugt, den man mit println() beschreiben kann
				ZeilenausgabeStrom = new PrintWriter(new FileWriter(Datei));

				// Ausgabeschleife: zeilenweises Einlesen von der
				// Konsole, Ausgeben der aktuellen Zeile an den
				// PrintWriter und damit in die Datei
				do 
				{
					ZeilenausgabeStrom.println(EingabeZeile);
					EingabeZeile = EingabeLeser.readLine();
				} while(EingabeZeile.compareTo("@") != 0);
				ZeilenausgabeStrom.close();
			}
			catch(IOException e)
			{
				System.out.println("Ein-/Ausgabefehler!");
			}
		}
	}
}

