Kodning af webserver - binære filer
Dette sp. er relateret til: http://www.eksperten.dk/spm/536730--------------------------------------------------------------
Spørgsmålet i '536730' gik på at få sendt binære filer ud fra en webserver, det virker fint, men CPU'en optages 100% i længere tid.
Jeg har det problem med binære filer at alt CPU'en bruges til at lægge byte array'et i memory, er der er en måde at sende filerne i mindre bidder på? eller måske en anden måde at aflevere filerne i mindre bidder?
Koden der benytter arne_v's klasse:
-----------------------------------
private Socket forbindelse;
while (!forbindelse.isClosed()) {
forbindelse.getOutputStream().write(hentBinFil(filnavn));
...
}
arne_v's klasse der lægger binære filer i et byte array:
-------------------------------
public static byte[] hentBinFil(String filnavn)
throws IOException {
byte[] b;
byte[] tom = new byte[0];
try {
b = new byte[(int) (new File(filnavn)).length()];
InputStream is = new FileInputStream(filnavn);
is.read(b);
is.close();
} catch (FileNotFoundException e) { // filen blev ikke fundet
b = new byte[0];
}
return b;
}
