# String als txt speichern



## Javafan12 (3. Jun 2010)

Guten Tag,

hier bin ich wieder und zwar habe ich ein Problem. In der Schule arbeiten wir mit dem Buch : Java für kids. Jetzt sind wir zu einem Punkt gelangt in dem wir einen String als txt Datei speichern sollen. Nur leider ist das in dem Buch so umständlich erklärt das ich eine andere erklärung brauche. Könnte mir jemand bitte den Quelcode schicken wo von mir aus auch ein String mit dem Inhalt  : HALLO als txt gespeichert wird????


----------



## eRaaaa (3. Jun 2010)

Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 14.3 Stream-Klassen und Reader/Writer am Beispiel von Dateien


----------



## Javafan12 (4. Jun 2010)

```
import java.io.*;

public class cp
{
  static void copy( InputStream in, OutputStream out ) throws IOException
  {
    byte[] buffer = new byte[ 0xFFFF ];
    for ( int len; (len = in.read(buffer)) != –1; )
      out.write( buffer, 0, len );
  }

  static void copyFile( String src, String dest )
  {
    FileInputStream  fis = null;
    FileOutputStream fos = null;

    try
    {
      fis = new FileInputStream( src );
      fos = new FileOutputStream( dest );

      copy( fis, fos );
    }
    catch ( IOException e ) {
      e.printStackTrace();
    }
    finally {
      if ( fis != null )
        try { fis.close(); } catch ( IOException e ) { }
      if ( fos != null )
        try { fos.close(); } catch ( IOException e ) { }
    }
  }

  public static void main( String[] args )
  {
    if ( args.length != 2 )
      System.err.println( "Benutzung: copy <src> <dest>" );
    else
      copyFile( args[0], args[1] );
  }
}
```

Das zeigt folgenden Fehler an :

Compiliere C:\Dokumente und Einstellungen\Torben\Eigene Dateien\cp.java mit Java-Compiler
cp.java:8:47: illegal character: \8211
    for ( int len; (len = in.read(buffer)) != –1; )
                                              ^
cp.java:8:48: not a statement
    for ( int len; (len = in.read(buffer)) != –1; )
                                               ^
cp.java:8:49: ')' expected
    for ( int len; (len = in.read(buffer)) != –1; )
                                                ^
cp.java:8:51: illegal start of expression
    for ( int len; (len = in.read(buffer)) != –1; )
                                                  ^
4 errors

warum kannn denn das programm nicht ausgeführt werden?


----------



## Javafan12 (4. Jun 2010)

KANN MIR DEN KEINER HELFEN? BITTE DAS IST WICHTIG! Könnte vllt. jemand mal selbst  einen quellcode von einem Programm meiner Wünsche reinposten???


----------



## eRaaaa (4. Jun 2010)

Habe ich doch oben, du musst auch mal ein wenig lesen...copy+paste sollte man auch beherrschen:

```
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;

public class Snippet {

	public static void main(String[] args) {
		Writer fw = null;
		try {
			fw = new FileWriter("fileWriter.txt");
			fw.write("HALLO");
			fw.append(System.getProperty("line.separator")); // e.g. "\n"
		} catch (IOException e) {
			System.err.println("Konnte Datei nicht erstellen");
		} finally {
			if (fw != null)
				try {
					fw.close();
				} catch (IOException e) {
				}
		}
	}

}
```


----------



## Javafan12 (4. Jun 2010)

Noch eine bitte dann bin ich endlich zu frieden  [Java]fw.append(System.getProperty("line.separator")); // e.g. "\n"[/code] erläutere mir bitte das.


----------



## eRaaaa (4. Jun 2010)

(das kannst du meinetwegen auch rauslassen)...das steht aber auch alles im ersten Satz im Link oben:



> Das folgende Programm erstellt die Datei fileWriter.txt und schreibt eine Textzeile mit Zeilenvorschubzeichen hinein.



line.seperator:
Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 10.5 Die Utility-Klasse System und Properties


> Um nach dem Ende einer Zeile an den Anfang der nächsten zu gelangen, wird ein Zeilenumbruch (engl. new line) eingefügt. Das Zeichen für den Zeilenumbruch muss kein einzelnes sein, es können auch mehrere Zeichen nötig sein. Zum Leidwesen der Programmierer unterscheidet sich die Anzahl der Zeichen für den Zeilenumbruch auf den bekannten Architekturen:
> Unix: Line Feed (Zeilenvorschub)
> Windows: beide Zeichen (Carriage Return und Line Feed)
> Macintosh: Carriage Return (Wagenrücklauf)



usw. LESEN :rtfm: !!


----------



## Javafan12 (4. Jun 2010)

Und wie kann ich jetztt nen String speichern? Weil nen String kann ich ja auch durch Eingabe das Users ändern das nicht. mfg JavFan12


----------



## ARadauer (4. Jun 2010)

an   fw.write kannst du einen string übergeben


----------



## Java-Freak (4. Jun 2010)

```
public class Snippet {
 
    public static void main(String[] args) {
        Writer fw = null;
        BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("geben sie den name der Datei ein");
        try {
            String text = stdin.readLine();             
            fw = new FileWriter(dateiname+".txt"); //man könnte auch write(stdin.readLine()) schreiben (siehe unten)
            System.out.println("geben sie den Inhalt der datei ein");
            fw.write(stdin.readLine());
            fw.append(System.getProperty("line.separator")); // e.g. "\n"
        } catch (IOException e) {
            System.err.println("Konnte Datei nicht erstellen");
        } finally {
            if (fw != null)
                try {
                    fw.close();
                } catch (IOException e) {
                }
        }
    }
 
}
```


----------

