Java实现的一个简单的下载器

package com.shawearn.download;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.EOFException;
import java.io.File;http://www.huiyi8.com/jiaoben/
import java.io.FileNotFoundException; JQuery特效
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
public class ShawDown {
// static String source = "http://www.baidu.com/img/bdlogo.gif";
// static String source = "http://down.sandai.net/mini/Minithunder_dl1.5.3.288.exe";
static String source = "http://img15.poco.cn/mypoco/myphoto/20140402/16/52430825201404021616531582238826629_002.jpg";
String fileName = null;
URL url = null;
InputStream inputStream = null;
URLConnection con = null;
public static void main(String[] args) {
ShawDown shawDown = new ShawDown();
shawDown.setFileName(source);
shawDown.connection();
shawDown.creatFile();
shawDown.writeResult();
//连接
public void connection() {
try {
url = new URL(source);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
try {
con = url.openConnection();
// con.setConnectTimeout(1000 * 60 *30);
// con.setReadTimeout(1000 * 60 *30);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
//创建本地文件
public void creatFile() {
file = new File(fileName);
if (!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
//将从网络获取的文件的InputStream并写入到本地
private void writeResult() {
FileOutputStream fos = null;
try {
fos = new FileOutputStream(file, true);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
BufferedOutputStream bos = new BufferedOutputStream(fos);
// BufferedOutputStream bos = new BufferedOutputStream(fos, 300 * 1024);
dos = new DataOutputStream(bos);
try {
// is = con.getOutputStream();
inputStream = con.getInputStream();
// System.out.println(inputStream.hashCode());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
BufferedInputStream bis = new BufferedInputStream(inputStream);
// BufferedInputStream bis = new BufferedInputStream(inputStream,
// 300 * 1024);
DataInputStream dis = new DataInputStream(bis);
try {
while (true) {
dos.write(dis.readByte());
} catch (EOFException e) {
System.out.println("下载完成!");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
try {
dos.close();
bis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();

Java实现的一个简单的下载器,布布扣,bubuko.com

时间: 2024-11-19 08:14:00

Java实现的一个简单的下载器的相关文章

java中,一个简单但出错率又大的‘加法’题,1+1+'1'+1+1+1+1+"1"=?

1+1+'1'+1+1+1+1+"1"=? 结果是多少?很多人看了题之后,可能会说结果是71.  当然有的童鞋可能会说很简单,放工具里运行一下就知道结果了,如果不运行代码,你会得出一个什么样的结果呢? 如果告诉你答案是551,会迷惑么?怎么会得出551? 下面我们来看看怎么算的: 1.我们大家都知道1 .'1'."1"的区别,1 表示一个int类型,’1'是表示一个char类型,"1" 表示一个字符串类型. 2.1+1+'1'+1+1+1+1+&

用 python 实现一个多线程网页下载器

今天上来分享一下昨天实现的一个多线程网页下载器. 这是一个有着真实需求的实现,我的用途是拿它来通过 HTTP 方式向服务器提交游戏数据.把它放上来也是想大家帮忙挑刺,找找 bug,让它工作得更好. keywords:python,http,multi-threads,thread,threading,httplib,urllib,urllib2,Queue,http pool,httppool 废话少说,上源码: 1 # -*- coding:utf-8 -*- 2 import urllib,

java写的一个简单学生管理系统[改进]

用Java写的一个简单学生管理系统 import java.util.*; public class student_cj {  public static void main(String[] args){      Scanner in=new Scanner(System.in);   System.out.print("请输入学生人数:");   int num=in.nextInt();//学生人数   String[] str=new String[num];//结合一行数

可视化程序设计基础(三)——一个简单的播放器(并不)

本次的作业是制作一个简单的播放器,功能仅限于播放视频和音频,虽说是简单的播放器,但其中还是有很多细节需要注意的. 问题一:布局 本来这个问题不应该是一个问题了,之前老师讲过的Stackpanel和Grid等对于布局一个播放器来说绰绰有余,但上次上课老师提到的NavigationView令我十分感兴趣,这是一个uwp应用程序中随处可见的一种布局,节省了开发者很多的时间. 所以我就着手于建立这个NavigationView了,首先我看了一下XAML Controls Gallery,然而其中关于Na

[SimplePlayer] 实现一个简单的播放器

简单的播放器需要实现一个最基本的功能:播放视频文件. 实现这个功能需要包含以下几个步骤: 从视频文件中提取视频图像 在屏幕上显示视频图像 视频帧的同步,也就是保证视频图像在合适的时间在屏幕上显示 从视频文件中提取音频 向音频设备输出音频 音频同步,也就是保证合适的时间输出合适的音频 多线程处理 音视频同步 本实现是通过ffmpeg来实现音视频的提取,通过sdl2来实现音视频的输出,版本如下: libavutil 56. 19.100 / 56. 19.100 libavcodec 58. 23.

一个简单的配置管理器(SettingManager)

在很多.net开发的项目中,我们几乎都会使用到一些自定义的参数,比如说第三方的配置参数之类的. 他们的特点是:1.系统全局 2,可以做成键值对(Dictionary). 我们可以将这些参数放到Web.config,xml或者数据库表中,当然部分不常变的可以直接写在程序中. 为了方便我通常喜欢将他们统放在一个配置管理器中,然后希望别人使用时, 可以像使用AppSetings中的参数一样 初看起来还是比较容易实现,在ConfiguratonManager中定义一个公开属性AppSettings就好了

java中一个简单的下载示例

首先在tomcat服务器下的webapps的download项目下建一个doc文件夹,再建个test.doc.防止控指针异常 DownLoad.java代码 1 package com.down; 2 3 import java.io.IOException; 4 import java.io.InputStream; 5 6 import javax.servlet.ServletException; 7 import javax.servlet.ServletOutputStream; 8

【Java】 实现一个简单文件浏览器(2)

接着上篇文章 接下来说下程序右侧的文件内容表格如何实现 FileTable类: FileTable基础于JTable类,构造函数里用setDefaultRenderer设置每行默认的渲染器为FileTableCellRenderer(下面会说如何实现) setAutoCreateRowSorter(true)函数自动创建一个默认的排序筛选器,等同于:setRowSorter(new TableRowSorter(model)) RowSorter:默认情况下,如果启用排序,那么排序时 JTabl

用Java GUI做一个简单的管理系统

1.先完成主页面MainUI(代码如下) package com.pag_1;   import javax.swing.*;   import java.awt.*;   import java.awt.event.ActionEvent;   import java.awt.event.ActionListener;   public class MainUI extends JFrame implements ActionListener {       //定义组件        JBu