]我需要做的是使用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