Hallo!
Schreibe gerade ein programm dass Zahlen von einer Datei einliest, diese dann ein einem array speichert, aufsteigend sortiert und dann wieder in einer Datei gespeichert werden soll.
Habe es soweit geschafft die Zahlen einzulesen und zu sortieren, aber wie funktioniert das, dass ich sozusagen die Ausgabe wieder in einer Datei speicher? Geht das mit Out.open... weiß aber nicht wo ich dass in meinen Code hineinschreiben soll.
Wär nett wenn mir jemand helfen könnte! Danke
lg alex
Schreibe gerade ein programm dass Zahlen von einer Datei einliest, diese dann ein einem array speichert, aufsteigend sortiert und dann wieder in einer Datei gespeichert werden soll.
Habe es soweit geschafft die Zahlen einzulesen und zu sortieren, aber wie funktioniert das, dass ich sozusagen die Ausgabe wieder in einer Datei speicher? Geht das mit Out.open... weiß aber nicht wo ich dass in meinen Code hineinschreiben soll.
Java:
public class alex {
public static void main(String args[]) {
char eingabe;
do {
printHeader();
In.open("sort.txt"); //Datei wird geöffnet
if (In.done()) { //solange lesen der Datei erfolgreich
Out.println("sort.txt opened");
while (In.done()) { //solagen lesen der Datei erfolgreich
readArray(); //wird Methode readArray aufgerufen
}
} else { //sonst Error Ausgabe
Out.println(" Error opening sort.txt");
}
In.close(); //Schließen der Datei
Out.println();
Out.print("Repeat y/n?: "); // Benutzer bestimmt Wiederholung
eingabe = In.readChar();
} while (eingabe == 'y');
}
//Methode Ausgabe Überschrift
static void printHeader() {
Out.println();
Out.println();
Out.println();
Out.println("*************************************************");
Out.println("* Arrays *");
Out.println("*************************************************");
Out.println();
Out.println();
}
static int[] readArray() {
int n = In.readInt(); //erste Zahl wird eingelesen
int[] a = new int[n]; //neues Array wird erstellt mit der Länge n
In.readChar(); //so wird der : ignoriert
for (int i = 0; i < n; i++)
a[i] = In.readInt();
Out.print(n);
Out.print(":");
sort(a); //Aufruf Methode der Sortierung
printArray(a); //Aufruf Methode der Ausgabe des Arrays
return a;
}
static void printArray(int[] a) {
for (int i = 0; i < a.length; i++) {
Out.print(" " + a[i]); //Ausgabe der einzelnen Zahlen
}
Out.println();
}
static void sort(int[] a) {
boolean unsorted=true;
int temp;
while (unsorted){
unsorted = false;
for (int i=0; i < a.length-1; i++)
if (a[i] > a[i+1]) {
temp = a[i];
a[i] = a[i+1];
a[i+1] = temp;
unsorted = true;
}
}
}
}
Wär nett wenn mir jemand helfen könnte! Danke
lg alex