一个java实现的简单文件下载程序
2012-02-09 16:35
856 查看
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class ReadInternetFile
{
public ReadInternetFile()
{
// TODO Auto-generated constructor stub
}
public URL getUrl()
{
return this.url;
}
public void setUrl() throws MalformedURLException
{
String url = null;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try
{
url = br.readLine();
this.url = new URL(url);
}
catch (IOException e)
{
e.printStackTrace();
}
}
public void setFileSaveName(URL url)
{
String file = url.getFile();
this.fileName = file.substring(file.lastIndexOf("/") + 1);
}
private String getFileName()
{
return this.fileName;
}
private URL url = null;
private static final String fileSavePath = "E:\\myftp\\download\\";
private String fileName = null;
public static void main(String []args)
{
Long start = System.currentTimeMillis();
System.out.println("please input the url of the file:");
ReadInternetFile fileReader = new ReadInternetFile();
try
{
fileReader.setUrl();
URL fileUrl = fileReader.getUrl();
fileReader.setFileSaveName(fileUrl);
HttpURLConnection conn = (HttpURLConnection)fileUrl.openConnection();
conn.setConnectTimeout(5000);
DataInputStream din = new DataInputStream(conn.getInputStream());
String savedFileName = fileReader.getFileName();
DataOutputStream dout = new DataOutputStream(new FileOutputStream(fileSavePath + savedFileName));
BufferedInputStream bin = new BufferedInputStream(din,4096);
BufferedOutputStream bout = new BufferedOutputStream(dout);
byte [] buffer = new byte[4*1024];
int count = 0;
while ((count = bin.read(buffer)) > 0)
{
//如果使用bout.write(buffer)方法图片会失真,而且下载的速度快慢与否与网络环境有很大的关系,
// dout.write(buffer, 0, count);
bout.write(buffer,0,count);
}
bout.close();
bin.close();
conn.disconnect();
System.out.println("file " + savedFileName + " successfully downloaded !");
System.out.println("Time used:" + (System.currentTimeMillis() - start));
}
catch (MalformedURLException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class ReadInternetFile
{
public ReadInternetFile()
{
// TODO Auto-generated constructor stub
}
public URL getUrl()
{
return this.url;
}
public void setUrl() throws MalformedURLException
{
String url = null;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try
{
url = br.readLine();
this.url = new URL(url);
}
catch (IOException e)
{
e.printStackTrace();
}
}
public void setFileSaveName(URL url)
{
String file = url.getFile();
this.fileName = file.substring(file.lastIndexOf("/") + 1);
}
private String getFileName()
{
return this.fileName;
}
private URL url = null;
private static final String fileSavePath = "E:\\myftp\\download\\";
private String fileName = null;
public static void main(String []args)
{
Long start = System.currentTimeMillis();
System.out.println("please input the url of the file:");
ReadInternetFile fileReader = new ReadInternetFile();
try
{
fileReader.setUrl();
URL fileUrl = fileReader.getUrl();
fileReader.setFileSaveName(fileUrl);
HttpURLConnection conn = (HttpURLConnection)fileUrl.openConnection();
conn.setConnectTimeout(5000);
DataInputStream din = new DataInputStream(conn.getInputStream());
String savedFileName = fileReader.getFileName();
DataOutputStream dout = new DataOutputStream(new FileOutputStream(fileSavePath + savedFileName));
BufferedInputStream bin = new BufferedInputStream(din,4096);
BufferedOutputStream bout = new BufferedOutputStream(dout);
byte [] buffer = new byte[4*1024];
int count = 0;
while ((count = bin.read(buffer)) > 0)
{
//如果使用bout.write(buffer)方法图片会失真,而且下载的速度快慢与否与网络环境有很大的关系,
// dout.write(buffer, 0, count);
bout.write(buffer,0,count);
}
bout.close();
bin.close();
conn.disconnect();
System.out.println("file " + savedFileName + " successfully downloaded !");
System.out.println("Time used:" + (System.currentTimeMillis() - start));
}
catch (MalformedURLException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
相关文章推荐
- 【Java】Swing+IO流实现一个简单的文件加密程序(demo版)
- 【Java】Swing+IO流实现一个简单的文件加密程序(较完整版)
- 写一个简单的程序实现把txt文件里面有规则的内容全部添加到数据库中
- java网络编程六:DatagramSocket类简单实现文件下载
- 基于Java的一个简单的文件上传下载功能
- 用java编写一个简单的字符串加密解密程序,将字符串分成若干行,实现字符串以一列一列读取,并还原之前输入的字符串。这里实现4行输出。
- Java实现一个小说采集程序的简单实例
- java和Android文件下载断点续传和图片下载代码实现,可直接复制简单实现
- 基于Java的一个简单的文件上传下载功能
- 手机浏览器下载的m3u8格式的多个视频文件合并成一个视频(Java实现)
- 网易2015编程题(一用Java实现一个多线程程序将这个10000个数输出到5个不用文件中)
- Java实训——创建一个窗体程序,实现简单的数学加、减法测试。
- 一个简单的Linux内核代码整合到一个文件的Java程序
- 一个简单的使用wininet的http/ftp文件下载程序
- 2多线程断点下载一个文件(普通的java工程:java实现)
- Java源码——一个简单的应收账款文件合并程序 (Master file update in accounts receivable system)-Part1
- Java 小程序 实现网络下载图片到制定文件夹,压缩和删除文件
- 一个Java实现的简单的多个客户端聊天程序(未测试)
- 通过java程序实现scp上传和下载文件
- 1 多线程下载一个文件(普通的java工程:java实现)