hi,
ich habe folgenden methode geschreiben:
die methode kopiert ne angegebene datei(src). die kopierte datei ist ziel. ich habe jetzt folgendes problem wenn ich das so mach wie es oben steht funktioniert es nicht. das programm wird fehlerlos ausgeführt und kopiert auch die datei, aber die neue datei ist immer beschädigt.Mit beschädigt meine ich sie hat zwar die gleiche grösse aber ich kann sie nicht richtig öffnen.
wenn ich nun "out.write(test.get(i),0,g);" aus zeile 33 in die zeile 22 kopiere(natürliche mit z statt i) funktioniert es. woran liegt das?
mfg
ich habe folgenden methode geschreiben:
Code:
public static void schreiben(int size,File src,File ziel,ObjectContainer db) throws IOException {
Hashtable<Integer,byte[]> test = new Hashtable<Integer,byte[]>();
byte[] buffer = new byte[size];
int read = 0,z=0;
int [] g=new int[359901];
int i=0;
OutputStream out = null;
InputStream in = null;
try {
out = new FileOutputStream(ziel);
in = new FileInputStream(src);
while(true)
{
read = in.read(buffer);
g[z]=read;
if (read == -1) {
//-1 bedeutet EOF
break;
}
test.put(z,buffer);
z++;
}
System.out.println("Datei wurde gelsesn");
while(true)
{
if (g[i] == -1) {
//-1 bedeutet EOF
break;
}
out.write(test.get(i),0,g[i]);
i++;
}
System.out.println("Datei wurde geschrieben");
}
finally {
in.close();
out.close();
}
}
die methode kopiert ne angegebene datei(src). die kopierte datei ist ziel. ich habe jetzt folgendes problem wenn ich das so mach wie es oben steht funktioniert es nicht. das programm wird fehlerlos ausgeführt und kopiert auch die datei, aber die neue datei ist immer beschädigt.Mit beschädigt meine ich sie hat zwar die gleiche grösse aber ich kann sie nicht richtig öffnen.
wenn ich nun "out.write(test.get(i),0,g);" aus zeile 33 in die zeile 22 kopiere(natürliche mit z statt i) funktioniert es. woran liegt das?
mfg