Siemka. Jestem w trakcie tworzenia czegos na wzor torrenta.
Napisalem funkcje ktora dzieli plik na 3 byte[] i przesyla klientowi. Klient go sklada i jak dla malutkich plików(66 bajtow) sklada szybciutko Niestety wieksze pliki(69mb) sklada w... nie powiem bo nie wiem po 10 min wylaczylem :P
Moja funkcja skladajaca wyglada tak:
Czy ktos móglby mi pomóc zoptymalizowac to zadanie?
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.io.FileOutputStream;
public class skladacz {
public static void main(String[] args) throws IOException {
File newFile1 = new File("C:\\arty\\part"+0);
File newFile2 = new File("C:\\arty\\part"+1);
File newFile3 = new File("C:\\arty\\part"+2);
byte[] a = Files.readAllBytes(newFile1.toPath());
byte[] b = Files.readAllBytes(newFile2.toPath());
byte[] c = Files.readAllBytes(newFile3.toPath());
File newFile = new File("C:\\arty\\test.pdf");
FileOutputStream fos = new FileOutputStream(newFile.toPath().toString());
byte[] d = new byte[a.length+b.length+c.length];
int j=0;
System.out.println("zaczynam pakowac");
for(int i=0; i<newFile1.length();i++){
d[j] = a[i];
j++;
}
System.out.println("zlozono 1");
for(int i=0; i<newFile2.length();i++){
d[j] = b[i];
j++;
}
System.out.println("zlozono 2");
for(int i=0; i<newFile3.length();i++){
d[j] = c[i];
j++;
}
System.out.println("zlozono 3");
fos.write(d);
System.out.println("skonczone");
}
}
Oczywiscie jest to funkcja testowa automatyzacja zajme sie po tym. Juz na oko widze ze ten kod ma powazny problem musi przeleciec przez kilka ok 72 milliony bajtow(niefajnie:( )