Ich habe ein kleines Problem mit meiner Klasse hier.
Es soll ein Binärstream von int zahlen mit Hilfe von FileInputStream und DataInputStream eingelesen werden. die zahlen möchte ich nach merkmalen(gerade, ungerade, negativ) sortiert in klassenvariablen speichern.
Anschliessend möchte ich die Anzahlen in einem String über den BufferedWriter an den FileWriter übergeben und in der datei anzahl.txt speichern.
irgendwie stehe ich wohl grad dumm auf dem schlauch. für ein paar denkanstösse wäre ich euch dankbar....
Das Problem ist, dass die Datei anzahl.txt leer ist aber erstellt wird.
ich bin mir nicht ganz sicher ob es nun am Stream liegt oder an meinen Daten die ich da abspeichern will, wobei ich das Gefühl habe dass es zweiteres ist....
Es soll ein Binärstream von int zahlen mit Hilfe von FileInputStream und DataInputStream eingelesen werden. die zahlen möchte ich nach merkmalen(gerade, ungerade, negativ) sortiert in klassenvariablen speichern.
Anschliessend möchte ich die Anzahlen in einem String über den BufferedWriter an den FileWriter übergeben und in der datei anzahl.txt speichern.
irgendwie stehe ich wohl grad dumm auf dem schlauch. für ein paar denkanstösse wäre ich euch dankbar....
Das Problem ist, dass die Datei anzahl.txt leer ist aber erstellt wird.
ich bin mir nicht ganz sicher ob es nun am Stream liegt oder an meinen Daten die ich da abspeichern will, wobei ich das Gefühl habe dass es zweiteres ist....
Java:
import java.io.*;
public class ZahlenZaehlen {
static int gerade=0;
static int ungerade=0;
static int negativ=0;
public static void main (String[]args){
FileInputStream fis_ref;
DataInputStream dis_ref;
BufferedWriter bw_ref;
FileWriter fw_ref;
int merker=0;
boolean EOF=false;
try{
fis_ref=new FileInputStream(".\\zeichendatei");
dis_ref=new DataInputStream(fis_ref);
fw_ref=new FileWriter(".\\anzahl");
bw_ref=new BufferedWriter(fw_ref);
int zahl=1;
while(EOF==false){
merker= dis_ref.readInt();
addiereZahl(merker);
System.out.println(zahl +"te Zahl gelesen");
zahl++;
}//endwhile
String daten_ref=schreibeText();
bw_ref.write(daten_ref);
fis_ref.close();
dis_ref.close();
bw_ref.close();
fw_ref.close();
}catch(EOFException e_ref){
EOF=true;
}catch(Exception e_ref){
System.out.println(e_ref.getClass().getName());
System.out.println(e_ref.getClass().getDeclaredClasses());
if(e_ref.getMessage()!=null)
System.out.print(e_ref.getMessage());
else
{System.out.print("unbekannter Fehler");
}
}//endtrycatch
}
static void addiereZahl(int merker){
if(merker<0)
negativ++;
if((merker%2)==0)
gerade++;
else
ungerade++;
}//endmethod
static String schreibeText(){
String ausgabe= ("Anzahl gerade Zahlen " + Integer.toString(gerade)+ "\r\n"+"Anzahl ungerade Zahlen: "+Integer.toString(ungerade)+"\r\n"+ "Anzahl negative Zahlen: "+Integer.toString(negativ)+"\r\n");
return ausgabe;
}//endmethod
Zuletzt bearbeitet von einem Moderator: