我在socket上写文件/大量字节。
但是我要说我在写字节。我这样做了;
//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字节左右等。基本上,任何大小的byte [],它都会 停在最后一个字节,然后超时。如果你不明白,我会解释更多。感谢。
答案 0 :(得分:3)
完成编写后,需要调用flush
以确保实际发送字节。
Connection.data.flush();
来自文档:
刷新此数据输出流。这会强制任何缓冲的输出字节 被写到流中。
DataOutputStream的flush方法 调用其底层输出流的flush方法。