Interessanter Artikel (Danke, Arndt!) zum Kopieren von Dateien mit Java. Läuft im wesentlichen darauf hinaus, dass das offensichtliche (im Artikel “Native Stream” genannte) Vorgehen
1 2 3 4 |
int c; while ((c = fin.read()) != -1) { fout.write(c);} } |
ziemlich langsam ist. Das an sich verwundert jetzt noch nicht (auch wenn ich das nicht wusste). Was zumindest mich aber sehr wohl verwundert hat: Wie einfach und wie viel performanter die Alternative (genannt “Custom Buffer Stream”) aussieht:
1 2 3 4 5 |
byte[] buf = new byte[8192]; int i; while ((i = fis.read(buf)) != -1) { fos.write(buf, 0, i); } |
Kann man sich mal merken, und kann man bei Gelegenheit auch mal in anderen Sprachen ausprobieren.