-1

我正在通过套接字写入文件/大量字节。

但是可以说我正在写字节。我这样做;

//Connection.data is a dataoutputstream
byte[] a = new byte[filelength];
//load file into the array
//write file
for (int i = 0; i < a.length; i++) {
Connection.data.writeByte(a[i]);                                              
}

受到:

//dat is a datainputstream
byte[] byteA = new byte[bytestoread]
for (int i = 0; i < toread; i++) {
        byteA[i] = dat.readByte();
}

我确实记录了传入的数据,如果文件是 200000 字节,它会在 199990 字节左右停止,等等。基本上,任何大小的字节 [],它都会在最后一个字节处停止,然后超时。如果你不明白,我会解释更多。谢谢。

4

1 回答 1

3

完成写入后,您需要调用flush以确保实际发送了字节。

Connection.data.flush();

从文档中:

刷新此数据输出流。这会强制将任何缓冲的输出字节写出到流中。

DataOutputStream 的 flush 方法调用其底层输出流的 flush 方法。

于 2012-08-25T09:17:58.693 回答