Hallo
hab folgenden Code geschrieben um eine datei in mehrere aufzuteilen, damit man sie dann z.B. auf mehrere CD's brennen kann und weitergeben.
Nur bringt mir das jetzt nicht viel, weil wenn ich eine datei die größe wie 80 mb auswähle bekomme ich eine Java heap Space fehlermeldung, da der Laufzeitumgebung ja nur 80 mb speicher zur verfügung stehen.
Nun meine Frage, wie kann ich das verhindern ohne der Laufzeitumgebung mehr speicher zuzuweißen??
danke
hab folgenden Code geschrieben um eine datei in mehrere aufzuteilen, damit man sie dann z.B. auf mehrere CD's brennen kann und weitergeben.
Code:
public static void split (File f, int größe){
try{
PrintWriter filenamen = new PrintWriter(new FileWriter("ergebnis.SF"));
PrintWriter dateiende = new PrintWriter(new FileWriter("dateityp.SF"));
dateiende.print((f.getName()));
dateiende.close();
boolean fileToLarg = false;
int anzahl = (int)(f.length())/größe;
FileOutputStream out;
FileInputStream in = new FileInputStream(f);
int anfang =0;
int ende = größe;
byte[] inByte = new byte[(int) f.length()];
in.read(inByte);
for(int i =1;i <=anzahl;i++){
out = new FileOutputStream("SplitFile "+i+".SF");
if(! fileToLarg){
out.write(inByte,anfang,ende);
anfang += ende;
out.close();
filenamen.println("SplitFile "+i+".SF");
}
}
if(f.length() % größe == 0){
fileToLarg =false;
}else{
fileToLarg =true;
}
if(fileToLarg){
out = new FileOutputStream("lastFile"+".SF");
out.write(inByte,anfang,(int)f.length()-anfang);
out.close();
filenamen.println("lastFile.SF");
}
filenamen.close();
}catch (IOException e){
}
}
Nur bringt mir das jetzt nicht viel, weil wenn ich eine datei die größe wie 80 mb auswähle bekomme ich eine Java heap Space fehlermeldung, da der Laufzeitumgebung ja nur 80 mb speicher zur verfügung stehen.
Nun meine Frage, wie kann ich das verhindern ohne der Laufzeitumgebung mehr speicher zuzuweißen??
danke