Nogle filer kan jeg ikke læse/skrive på min socket?
Jeg har følgende kode der skriver til en socket:[SNIP]
OutputStream out = new BufferedOutputStream(socket.getOutputStream());
File f = new File(SOME_PATH);
InputStream fin = new FileInputStream(f);
int n;
while((n = fin.read()) > 0) {
out.write(n);
}
out.flush();
fin.close();
[/SNIP]
Og følgende kode der læser fra en socket:
[SNIP]
InputStream in = new BufferedInputStream(socket.getInputStream());
File f = new File(SOME_PATH);
OutputStream vos = new FileOutputStream(f);
int n;
for(int i=0;i<fileSize;i++) {
n = in.read();
vos.write(n);
}
vos.close();
vos = null;
[/SNIP]
"fileSize" er alltid størrelsen på filen i bytes, det er helt sikkert.
Jeg kan overfører både binære og textfiler på denne måde, men nogle enkelte filer "hænger" enten når der læses fra dem eller skrives til socketen, jeg ved ikke helt hvilken?
Disse "mystiske" filer kan heller ikke læses af Windows Commanders indbyggede viewer, men jeg kan godt læse dem med Ultredit, den læser dem som HEX.
Hvorfor det, hvad skal jeg gøre for at kunne overføre dem?