Ich versuch grad meine ersten Schritte in Java und hab nen kleines Sortierprogramm geschrieben, dass auf Werte aus einer Datei zurück greift. Die Daten werden auch richtig erzeugt und hoffentlich gespeichert. Jedoch nach dem auslesen sind alle Werte falsch und folglich auch die sortierte Liste. Was mach ich falsch? Speicher ich den Ina-Array falsch?
!!!Hilfe!!! :roll:
Wie Ihr oben sehen könnt werden per zufall zahlen bis 1000 erzeugt. Nach dem auslesen aus der Datei sind es nur noch Zahlen von 0 bis 255. Lesbar ist die datei auch nicht in Klartext.
Code:
package Sort1;
import java.io.*;
import java.lang.System;
import java.lang.Math;
public class test {
static String Pfad= "C:\\Entwicklung\\BubleSort\\Sort1\\Zahlen.txt";
static int Kette[], tmp_Kette[];
static int max=10000;
static int laenge=1000;
public static void Dateierzeugung() throws IOException{
File Zahlendatei = new File(Pfad);
Zahlendatei.createNewFile() ;
}
public static void Datei_fuellen() throws FileNotFoundException, IOException{
RandomAccessFile Writer = new RandomAccessFile(Pfad, "rw");
for(int i=0;i<max;i++){
Writer.write(Kette[i]);
}
//Writer.writeChars("1");
}
public static void Kette_erzeugen(){
System.out.println("Erzeugte:");
for(int i=0;i<max;i++){
int x;
x=(int)(Math.random()*laenge);
Kette[i]=x;
System.out.print(x);
System.out.print(" ");
}
}
public static void Datei_lesen() throws FileNotFoundException,IOException{
RandomAccessFile Reader = new RandomAccessFile(Pfad, "r");
System.out.println("Gelesene:");
for(int i=0;i<max;i++){
tmp_Kette[i] = Reader.read();
System.out.print(tmp_Kette[i]);
System.out.print(" ");
}
}
public static void Dateiarbeit(){
try{
Dateierzeugung();
}
catch(IOException ex){
System.out.print(ex);
}
try{
Datei_fuellen();
}
catch(FileNotFoundException ex){}
catch(IOException ex){}
System.out.print("Ende");
System.out.println();
}
public static void Kette_Sortieren(){
int exit = 0;
int tmp;
System.out.println("\nSortiert:");
while(exit != 1){
exit=1;
for(int i=0;i<max-1;i++){
if(tmp_Kette[i]>tmp_Kette[i+1]){
exit=0;
tmp=tmp_Kette[i];
tmp_Kette[i]=tmp_Kette[i+1];
tmp_Kette[i+1]=tmp;
}
}
}
for(int i=0;i<max;i++){
System.out.print(tmp_Kette[i]);
System.out.print(" ");
}
}
public static void main(String args[]){
Kette = new int[max];
tmp_Kette = new int[max];
Kette_erzeugen();
Dateiarbeit();
try{
Datei_lesen();
}
catch(FileNotFoundException ex){}
catch(IOException ex){}
Kette_Sortieren();
}
}
!!!Hilfe!!! :roll:
Wie Ihr oben sehen könnt werden per zufall zahlen bis 1000 erzeugt. Nach dem auslesen aus der Datei sind es nur noch Zahlen von 0 bis 255. Lesbar ist die datei auch nicht in Klartext.