İstemciden sunucuma dosya yüklemek için kod yazıyorum ve performansın olması gerektiği kadar hızlı değil.Java kullanarak dosya aktarmanın en iyi yolu nedir?
Dosya aktarımı yapan geçerli kod parçacığım var ve aktarımı nasıl hızlandıracağımı merak ediyordum.
public static int[] getBytesFromStream(InputStream in, int size) throws IOException {
int[] b = new int[size];
int count = 0;
while (count < size) {
b[count++] = in.read();
}
return b;
}
ve: tüm kodu ile ilgili yazık
aşağıdaki gibidir:
InputStream fileItemInputStream ;
OutputStream saveFileStream;
int[] buffer;
while (fileItemInputStream.available() > 0) {
buffer = Util.getBytesFromStream(fileItemInputStream);
Util.writeIntArrToStream(saveFileStream, buffer);
}
saveFileStream.close();
fileItemInputStream.close();
Util yöntemler
bir seferde tek bir bayt okumapublic static void writeIntArrToStream(OutputStream out, int[] arrToWrite) throws IOException {
for (int i = 0; i < arrToWrite.length; i++) {
out.write(arrToWrite[i]);
}
}
Ben Java'nın imzalı bayt taşan dosyada benim imzasız bayt konusunda endişelenmenize gerek yok? – jjnguy
Bunlar, mp3 dosyaları, eğer önemliyse – jjnguy
Hayır, yapmazsınız. Bu sadece okuma ve yazma, herhangi bir aritmetik veya dönüşüm gerçekleştirmeme. –