我是編程新手。我想製作一個程序,通過使用java的網絡傳輸大文件。願有人請我寫下如何編寫這樣一個程序,它可以通過網絡有效地傳輸任何大小的文件。一個人告訴我使用套接字通道和套接字通道作爲文件,但由於我是初學者,我不能寫'質量代碼'。提前致謝。使用nio套接字傳輸大文件
0
A
回答
-1
這個簡單的示例將幫助你。這有效,你需要適應你的情況。
public static void main(String[] args) throws Exception {
new Thread() {
public void run() {
ServerSocket server = null;
try {
try {
server = new ServerSocket(8882);
Socket socket = server.accept();
InputStream is = socket.getInputStream();
byte[] bytes = new byte[1024];
while (is.read(bytes) != -1) {
System.out.println(new String(bytes));
bytes = new byte[1024];
}
} finally {
if (server != null)
server.close();
}
} catch(Exception ex) {
ex.printStackTrace();
}
};
}.start();
Socket socket = new Socket("localhost", 8882);
OutputStream out = socket.getOutputStream();
FileInputStream fis = new FileInputStream(new File("/c:/zipfile.zip"));
byte[] bytes = new byte[1024];
while (fis.read(bytes) != -1) {
out.write(bytes);
bytes = new byte[1024];
}
fis.close();
out.close();
socket.close();
}
0
您不需要NIO。在Java流之間複製流的標準方法如下:
while ((count = in.read(buffer)) > 0)
{
out.write(buffer, 0, count);
}
這適用於任何大於零的緩衝區大小。我通常使用8192字節或更多。請注意,如果不將read()結果存儲到變量中,則無法正確執行此操作,這與您可能在別處讀取的內容相反。
您將需要添加代碼來創建和接受插座,並得到他們的輸入和輸出流,並在完成時打開文件的輸入和輸出流,並關閉一切,
相關問題
- 1. 使用套接字文件傳輸
- 2. 套接字文件傳輸
- 3. 使用NIO的Java套接字通信
- 4. 通過套接字傳輸文件c
- 5. C#文件傳輸通過套接字
- 6. 套接字文件傳輸不正確
- 7. C#異步套接字文件傳輸
- 8. TCP套接字文件傳輸
- 9. 套接字程序文件傳輸
- 10. 套接字文件傳輸失敗
- 11. android套接字文件傳輸
- 12. Perl套接字文件傳輸問題
- 13. 服務器套接字文件傳輸
- 14. Python通過套接字傳輸文件
- 15. Python UDP套接字文件傳輸
- 16. 使用套接字上傳文件
- 17. 文件傳輸後沒有輸入傳輸 - 套接字
- 18. 傳輸帶有套接字的文件,並找到最大MTU
- 19. 通過java套接字進行大文件傳輸
- 20. 通過套接字傳輸64k大小的文件失敗
- 21. 奇怪的文件輸出套接字文件傳輸
- 22. 使用套接字的Android文件傳輸
- 23. 使用CFWriteStream將文件傳輸到套接字
- 24. 使用套接字編程從android傳輸文件到電腦
- 25. 通過使用JAVA的套接字進行文件傳輸
- 26. 使用c套接字傳輸音頻文件
- 27. 如何使用IOUtils.copy通過Java套接字傳輸文件
- 28. 文件使用.net套接字,傳輸問題
- 29. 如何使用Java套接字實現文件傳輸?
- 30. 使用java套接字傳輸大量數據
試一試,寫一些代碼,那麼如果遇到一些問題,請回到我們這裏。 –