Witam!
Chcę napisać program, któremu podam pewną liczbę całkowitą N np. 5. Następnie on zapisze tą liczbę do pliku przy pomocy klasy RandomAccessFile. Następnie zapisze N dowolnych liczby zmiennoprzecinkowych double po tym jakiś tekst np. "Przykładowy tekst" a na koniec średnią z tych 5 liczb double. Wszystko za pomocą klasy RandomAccsessFile. Robię to tak:
Wczytanie tej liczby N np N=5;
try{
RandomAccessFile rf = new RandomAccessFile("src" + File.separator + "wyjscie.dat","rw");
Random generator = new Random();
try{
rf.write(n);
s=0;
for(int i=1;i<=n;i++){
a = generator.nextDouble();
s=s+a;
rf.writeDouble(a);
}
s=s/n;
rf.writeUTF("Java dla NSI");
rf.writeDouble(s);
}finally{
rf.close();
}
}catch (IOException e1)
{
System.err.println("Problem IO:" + e1);
}
Ale jak teraz odczytać (przy użyciu RandomAccessFile) ostatnią liczbę zapisaną przed napisem czyli ostatnią tą dowolną double oraz tą za napisem czyli średnią tych pięciu double? Bo jak odczytuje to w ten sposób:
try{
RandomAccessFile rf = new RandomAccessFile("src" + File.separator + "wyjscie.dat","rw");
try{
byte[] buf = new byte[(int)rf.length()];
rf.readFully(buf);
for(byte b: buf){
System.out.println(b);
}finally{
rf.close();
}
}catch (IOException e1)
{
System.err.println("Problem IO:" + e1);
}
}
To wyrzuca mi masę liczb, gdy rzutuje tą zmienną b na char wtedy ukaże mi się napis i jakieś kwadraciki zamiast liczb ale jak dostać się do tego do czego chcę?