Moin an alle Java-Interessierten!
ich hab zur Zeit ein Programm zu realisieren bei dem ich immer wieder auf ein von mir nicht lösbares Problem stoße! Das Programm soll vom User bestimmte Strings und einen Int abfragen, und diese in einer selbst zu benennenden Datei speichern. Diese datei kann man zuerst auch wieder umbenennen, aber nachdem man sich die Daten welche der User eingegeben hat wieder ausdrucken hat lassen, kann man die Datei nicht mehr umbenennen!
Über konstruktive Lösungsansätze würde ich mich sehr Freuen!
Hier das Programm:
ich hab zur Zeit ein Programm zu realisieren bei dem ich immer wieder auf ein von mir nicht lösbares Problem stoße! Das Programm soll vom User bestimmte Strings und einen Int abfragen, und diese in einer selbst zu benennenden Datei speichern. Diese datei kann man zuerst auch wieder umbenennen, aber nachdem man sich die Daten welche der User eingegeben hat wieder ausdrucken hat lassen, kann man die Datei nicht mehr umbenennen!
Über konstruktive Lösungsansätze würde ich mich sehr Freuen!
Hier das Programm:
Code:
import java.io.*;
class bla
{
static String zu = System.getProperty("line.separator");
static int anZahl;
static File f;
public static void main(String[] args)throws IOException
{
System.out.println("\n\n Hallo in unserem Programm!");
String [] x = new String [anZahl];
String [] y = new String [anZahl];
int [] z = new int [anZahl];
String [] a = new String [anZahl];
programm(x,y,z,a);
}
public static void programm(String [] x,String [] y,int [] z,String [] a)throws IOException
{
System.out.print("\n\n\n M E N U E\n\n\n");
System.out.print("±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±\n\n");
System.out.print("0 - beenden \n\n"+
"1 - Daten aufnehmen \n\n"+
"2 - abspeichern \n\n"+
"3 - Datei umbenennen \n\n"+
"4 - Daten in Datei auslesen \n\n");
int auswahl = getUserInt("Bitte wählen sie!\n");
if (auswahl<0)
{
System.out.print("Eingabe fehlerhaft!");
programm(x,y,z,a);
}
else
{
if (auswahl>4)
{
System.out.print("Eingabe fehlerhaft!");
programm(x,y,z,a);
}
}
switch (auswahl)
{
case 0:
{
int pent = getUserInt(" haben sie gespeichert? \n\n"+
"0 - wirklich beenden \n\n"+
"1 - speichern \n\n"+
"2 - abbruch abbrechen \n\n");
switch (pent)
{
case 0:
{
System.out.print(" Auf Wiedersehen!");
System.exit(0);
}
break;
case 1:
{
speichern(x,y,z,a);
}
break;
case 2:
{
System.out.print("Beenden abgebrochen!");
programm(x,y,z,a);
}
}
}
break;
case 1:
{
aufnahme(x,y,z,a);
}
break;
case 2:
{
speichern(x,y,z,a);
}
break;
case 3:
{
umbenennen(x,y,z,a);
}
break;
case 4:
{
auslesen(x,y,z,a);
}
break;
}
}
public static void aufnahme(String [] x,String [] y,int [] z,String [] a)throws IOException
{
anZahl = getUserInt("Bitte geben sie die gewünschte PersonenAnzahl ein\n");
x = new String [anZahl];
y = new String [anZahl];
z = new int [anZahl];
a = new String [anZahl];
for (int i=0;i<x.length;i++)
{
x [i] = getUserString("Bitte geben sie den "+(i+1)+". Namen ein!\n\n");
y [i] = getUserString("Bitte geben sie den "+(i+1)+". NachNamen ein!\n\n");
z [i] = getUserInt("Bitte geben sie das "+(i+1)+". Alter ein!\n\n");
a [i] = getUserString("Bitte geben sie den "+(i+1)+". wohnort an!\n\n");
}
programm(x,y,z,a);
}
public static void speichern(String [] x,String [] y,int [] z,String [] a)throws IOException
{
String dateiname = getUserString("\n Bitte geben sie einen DateiNamen ein!\n");
f = new File (dateiname+".txt");
boolean appent= false;
if (f.exists())
{
int swisch= getUserInt("datei existiert bereits!\n\n"+
"0 - überschreiben\n\n"+
"1 - anhängen\n\n");
if (swisch < 0)
{
System.out.print("Keine gültige angabe");
speichern(x,y,z,a);
}
else
{
if (swisch >1)
{
System.out.print("Keine gültige angabe");
speichern(x,y,z,a);
}
}
if (swisch == 0)
{
appent = false;
}
else
{
appent = true;
}
}
FileWriter fw = new FileWriter(dateiname+".txt",appent);
String separator = "//";
for (int i=0;i<x.length ;i++ )
{
fw.write(x[i]+separator);
fw.write(y[i]+separator);
fw.write(z[i]+separator);
fw.write(a[i]+zu+zu);
}
fw.close();
System.out.print("\nEs wird in ihrem ordner unter "+(dateiname)+".txt gespeichert !\n");
programm(x,y,z,a);
}
public static void umbenennen(String [] x,String [] y,int [] z,String [] a)throws IOException
{
f = new File(getUserString("\n\nWelche datei wollen sie umbennen?\n\n")+".txt");
File n = new File(getUserString("Umbenennen in : ")+".txt");
if (f.renameTo(n))
{
f=n;
System.out.print("\nUmbenennen erfolgreich in :\n\n");
programm(x,y,z,a);
}
else
{
System.out.print("Umbenennen felerhaft. nochmal!");
programm(x,y,z,a);
}
}
public static void auslesen(String [] x,String [] y,int [] z,String [] a)throws IOException
{
String dateiname = getUserString("welche datei wollen sie auslesen?");
if (f.exists())
{
FileReader fr = new FileReader(new File(dateiname+".txt"));
BufferedReader br = new BufferedReader(fr);
int i;
for (i=0;br.readLine()!=null;i++);
fr = new FileReader(dateiname+".txt");
br = new BufferedReader(fr) ;
String [] daten = new String [i];
for (i=0;i<daten.length;i++)
{
daten[i] = br.readLine();
}
for (i=0;i<daten.length ;i++)
{
System.out.print(daten[i]+"\n");
}
programm(x,y,z,a);
}
else
{
System.out.print("Datei konnte nicht gefunden werden!");
programm(x,y,z,a);
}
}
public static String getUserString(String text)throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print(text);
return br.readLine();
}
public static int getUserInt(String text)throws IOException
{
try
{
return new Integer(getUserString(text));
}
catch (NumberFormatException nfe)
{
System.out.print("Fehler 1337 -> keine zahl! \n");
return getUserInt(text);
}
}
}
Zuletzt bearbeitet: