我是编程新手。我想制作一个程序,通过使用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套接字传输大量数据
试一试,写一些代码,那么如果遇到一些问题,请回到我们这里。 –