]我需要做的是使用DataStream发送多个文件。我通过发送文件的名称,然后是文件的字节来完成此操作。我需要发送不确定数量的文件。这是DataOutputStream
的代码。从DataInputStream中读取几个字节[
out.writeUTF(path);
out.write(Files.readAllBytes(file.toPath()));
它确实,对于一个需要发送的每个文件。但我不知道如何正确阅读DataInputStream
。这是我迄今为止所拥有的。
while (in.available() != 0) {
String path = in.readUTF();
byte bytes = in.readByte();
}
很明显,它不会工作,因为它只读取一个字节。但我不知道如何让它读取所有的字节。由于有几个文件被发送,我想,available()
只会在读取所有文件的结尾时等于0。任何帮助是极大的赞赏。
东西我完全忘了提,我希望能够发送大量文件而不会耗尽内存,而且我不认为这会工作。我想我需要使用一个缓冲区,但我不知道什么类支持文件。
你为什么写每个字节分开,而不是一次性写入整个字节数组? – 2012-04-18 19:34:15
@JonSkeet没有特别的理由。这样做会更好吗? – Stripies 2012-04-18 19:36:10
你是如何初始化你的DataInputStream的。你确定它初始化正确吗?你是否一步一步确定它只读一次,并死亡?是你真正阅读文件的内容,还是你没有阅读任何内容,因为初始化不正确? – Churk 2012-04-18 19:37:06