如何从服务器下载文件
问题描述:
我对一般设计实现有疑问。希望比我更熟练的人帮助我。如何从服务器下载文件
我想做一个基于android客户端和java服务器的应用程序。本地无线传输,没有3G。
基本上,客户端必须连接到服务器并请求使用代码下载的文件。
我该怎么做?
事情我知道:
- 我必须在客户端创建一个后台线程创建在SD卡中的文件和更新采用处理程序与UI线程进行通信的进度条。
- 服务器必须是多线程和非阻塞的。
- 该文件是一个像mp3音频的二进制文件。因此,服务器必须:
- 发送有关文件的信息:名称和总长度。
- 打开文件,读取并发送字节,但未达到结尾。
- 客户有:
- 收到有关文件中的信息,并创建一个空文件。
- 读取字节并将其转储到空文件中。更新进度条。
- 收到所有字节后关闭文件。
我有知识实现在C(非常可怕的)的客户端和服务器,但我在Java做一个真正的客户端 - 服务器应用程序开始。
问题:
-
我怎样才能从服务器下载如MP3二进制文件到客户端?
- 在哪里我必须把我的服务器应用程序?我认为我必须创建一个jar,将其保存在一个文件夹中并在PC启动时执行它,对吧?
谢谢!
答
如何从服务器下载二进制文件,例如mp3到客户端?
要下载文件与Java,您可以使用URL.openStream();
http://download.oracle.com/javase/tutorial/networking/urls/readingURL.html
不要输出打印到System.out
。相反,将它写入文件。
FileOutputStream fos = new FileOutputStreamm(new File("path_to_file.mp3");
int byte;
while ((byte= in.readLine()) != -1)
fos.write(byte);
在哪里我必须把我的服务器应用程序? 除非确实需要,否则不要实现服务器。如果可能的话使用http-Server(Tomcat或Apache HTTPD)。通过HTTP使您的文件可用。
如果你想使用Java服务器,你应该写一个Servlet
,并packkage为WAR
-File: