Einzelnen Beitrag anzeigen
Alt 24.02.2006, 16:49   #1 (permalink)
redfalcon
Hardware Freak
 

Registriert seit: 28.03.2003
Beiträge: 8.252

redfalcon kann auf vieles stolz sein
redfalcon kann auf vieles stolz sein

Standard [Java] Problem mit FileWriter

Huhu,

in der Schule haben wir eine Klasse programmiert, die einfach eine Textdatei mit Inhalt auf die Festplatte schreibt. Nun wollte ich dieses Programm so "verbessern", dass man Dateinamen und Inhalt per Eingabe vom Nutzer festlegt. Funzt aber leider nicht. Die Datei wird einfach nicht erstellt. Lege ich Inhalt und Dateiname im Code fest, funktioniert alles. Warum aber nicht, wenn die Eingaben vom User gemacht werden sollen? Die Fehler muss ganz banal sein, da auch unser Tewi-Lehrer ewig mit mir rumprobiert hat. Die *.txt Datei wird im selben Verzeichnis erstellt werden, aus der das Programm gestartet wird.

Code:

PHP-Code:
import java.io.*;

public class 
Stream{

  public 
Stream(){

  }
  
  
//Input-Methode
  
public String stringInput(){
          
StringBuffer temp = new StringBuffer();
          
InputStreamReader ir = new InputStreamReader(System.in);
          try {
              do {
    
int i ir.read();
    if(
!= 10 && != 13)
         
temp.append((chari);
} while ( 
ir.ready()); 

          }

          catch (
IOException e) {

          }
          return 
temp.toString();



            

  }
  
  public 
void dateiSchreiben(String dateiString inhalt){

    
File fi = new File(datei);
    try{
    
//Falls Datei existiert, lösche die Datei und erstelle Neue.
    
if ( fi.exists() ) {
       
fi.delete();
       
fi.createNewFile();
    }
    
    
//Inhalt in Date schreiben.
    
FileWriter fw = new FileWriter(fi);
    
fw.write(inhalt);
    
fw.close();
    }
    catch(
IOException e){

    }


  }


  public static 
void main (String args[]){
    
String datei;  //Dateiname
    
String inhalt//Inhalt der Datei
    
    
Stream se = new Stream();
    
    
System.out.println("Dateiname im Format xyz.txt eingeben: ");
    
datei =  se.stringInput();
    
System.out.println(datei); //Nur zur Überwachung
    
System.out.println("Inhalt der Datei eingeben: ");
    
inhalt se.stringInput();
    
System.out.println(inhalt); //Nur zur Überwachung
    
    
se.dateiSchreiben(dateiinhalt);

  }


Edit: Problem gelöst. Gab wohl ein Problem mit der Eingabe. Funktionierender Code:

PHP-Code:
import java.io.*;

public class 
Stream{

  public 
Stream(){

  }
  
  
//Input-Methode
  
public String stringInput(){
          
StringBuffer temp = new StringBuffer();
          
InputStreamReader ir = new InputStreamReader(System.in);
          try {
              do {
                 
temp.append((charir.read());
             } while ( 
ir.ready());

          }

          catch (
IOException e) {

          }
          return 
temp.toString();



            

  }
  
  public 
void dateiSchreiben(String dateiString inhalt){

    
File fi = new File(datei);
    try{
    
//Falls Datei existiert, lösche die Datei und erstelle Neue.
    
if ( fi.exists() ) {
       
fi.delete();
       
fi.createNewFile();
    }
    
    
//Inhalt in Date schreiben.
    
FileWriter fw = new FileWriter(fi);
    
fw.write(inhalt);
    
fw.close();
    }
    catch(
IOException e){

    }


  }


  public static 
void main (String args[]){
    
String datei;  //Dateiname
    
String inhalt//Inhalt der Datei
    
    
Stream se = new Stream();
    
    
System.out.println("Dateiname im Format xyz.txt eingeben: ");
    
datei =  se.stringInput();
    
System.out.println(datei); //Nur zur Überwachung
    
System.out.println("Inhalt der Datei eingeben: ");
    
inhalt se.stringInput();
    
System.out.println(inhalt); //Nur zur Überwachung
    
    
se.dateiSchreiben(dateiinhalt);

  }


Geändert von redfalcon (25.02.2006 um 14:28 Uhr)
redfalcon ist offline   Mit Zitat antworten