Ich habe ein Programm geschrieben, das aus einer Datei(existiert) Integer Werte eingelesen werden und diese sollen nach gerade oder ungerade sortiert in Dateien geschrieben werden. Aber das funktioniert bei mir nicht.
Kann mir einer weiterhelfen?
Das Programm:
Code:
public class Filter2aenderung {
public static void main(String[] args)
{
try
{
DataInputStream dis=new DataInputStream(new FileInputStream("Werte.txt"));
DataOutputStream dos1=new DataOutputStream(new FileOutputStream("Datei_gerade.txt"));
DataOutputStream dos2=new DataOutputStream(new FileOutputStream("Datei_ungerade.txt"));
for (int i=0;i<dis.available();i++)
{
int zahl=dis.readInt();
System.out.println(zahl);
if ((zahl%2)!=0)
{
dos2.writeInt(dis.readInt());
}
else
{
dos1.writeInt(dis.readInt());
}
}//endfor
}//endtry
catch (FileNotFoundException f)
{
System.out.print("Datei nicht gefunden");
}
catch(IOException e)
{
System.out.print("Eingabe- Ausgabefehler");
}
}
}
available gibt an wie viele bytes ohne block gelesen werden, nicht wieviele eintraege deine datei hat. ausserdem solltest du beschreiben was dein konkretes problem ist und code tags benutzen
Wie kann ich denn herausfinden, wieviele Einträge die Datei hat? Ich will Integer Zahlen von einer Quellendatei sortieren nach geraden- bzw. ungeraden Zahlen, die dann wiederum in Dateien (ungerade Datei, gerade Datei) geschrieben werden.
Ich will Integer Zahlen von einer Quellendatei sortieren nach geraden- bzw. ungeraden Zahlen, die dann wiederum in Dateien (ungerade Datei, gerade Datei) geschrieben werden.
du hast immer noch nicht dein problem beschrieben, heist das du hast kein problem?
meine kristallkugel sagt mir zwar das du mit ner ioexception (EOF) rausfliegst, aber egal
ausserdem solltest du die outputstreams im finally block flushen oder zumachen
2. Ich weiß jetzt immer noch nicht, wie es funktioniert. Bei der Methode readInt() bringt er mir völlig falsche werte. Habe mal die Zahl auf der Standardausgabe ausgegeben.
3. Ich halte dich gar nicht für blöd. Ich hab nur gefragt, ob du mein Problem verstanden hast....
du hast doch irgend wie die ursprungsdate erstellt, und ich wuerde gerne wissen wie. wenn du da einfach nur zahlen reingeschriben hast kann es nicht so gehen wie du willst da dann keine ints sondern strings in der datei sind welche du erst wieder in richtige zahlen verwandeln musst