Datei in Pakete bestimmter Größe splitten

mansenpansen

Mitglied
Ich habe folgendes Problem: Ich würde gerne mittels einer Funktion eine Datei in Pakete bestimmter Größe teilen. Also: Input: 1 Datei, 9 MB, Output: 9 Teile á 1MB. Kann mir jemand eine Möglichkeit sagen, wie ich das realisieren kann?

Meine Idee war die Datei quasi Byteweise in ein Array zu lesen, und dann ab einem bestimmten Wert (1024 Byte) das Array in eine Datei, bzw. eine andere variable zu verschieben.

Aber eventuell geht das ganze ja auch komfortabler....?
 
Hallo,

du musst die Datei ja nicht byteweise einlesen sondern am besten
gleich in Groeße deiner Splitsize:

Code:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

class Splitter{
    public static void main(String[] args) throws IOException{
        FileInputStream in = new FileInputStream("test.txt");
        final int split_size = 1024 ;
        byte[] data = new byte[split_size];
        int numbytes = 0;
        for(int i = 0; (numbytes = in.read(data)) != -1; i++){
            FileOutputStream of = new FileOutputStream("split"+(i + 1));
            of.write(data, 0, numbytes);
            of.close();
        }
        in.close();
    }
}

Gruß

RedWing
 
Zurück