`
zj360202
  • 浏览: 29147 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

J2ME断点下载文件

    博客分类:
  • j2me
阅读更多
package downfile;

import java.io.*;

import javax.microedition.io.*;
import javax.microedition.io.file.*;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.AlertType;
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.Display;
import javax.microedition.midlet.MIDlet;

/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2009</p>
*
* <p>Company: </p>
*
* @author new soul
* @version 1.0
*/
public class Load extends Thread {
    private String url;//网络文件的地址
    private String path;//本地保存路径
    private long loadsize=0;//下载文件的大小
    private long size=0;//已下载的文件大小
    private MIDlet midlet;

    /**
     * 下载线程
     * @param urlstr String 网络文件地址
     * @param pathstr String 本地存储路径
     * @param mid MIDlet 当前显示主类
     * 手机地址为 file:///E:/     电脑模拟器地址 file://localhost/root1/
     */
    public Load(String urlstr,String pathstr,MIDlet mid) {
        this.url=urlstr;
        this.path=pathstr;
        this.midlet=mid;
        Thread thread=new Thread(this);
        thread.start();
    }

    public void run() {
        try {
            LoadFile(url, path);
            Alert alert=new Alert("下载提示","下载已完成!",null,AlertType.ALARM);
            alert.setTimeout(3000);
            Display.getDisplay(midlet).setCurrent(alert);

        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    /**
     * 文件的断点下载
     * @param urladress String 网络文件的地址
     * @param pathstr String 文件存储的本地地址
     */
    public void LoadFile(String urladress, String pathstr) {
        HttpConnection conn = null;
        FileConnection fc = null;
        InputStream is = null;
        OutputStream os = null;

        //截取文件名
        String[] urlstr = Tool.Split(urladress, "/");
        String filename = urlstr[urlstr.length - 1].toString();

        try {
            conn = (HttpConnection) Connector.open(url.trim());
            conn.setRequestMethod(HttpConnection.POST);

            //手机地址为 file:///E:/     电脑地址file://localhost/root1/
            fc = (FileConnection) Connector.open(pathstr + filename,Connector.READ_WRITE);
            if (fc.exists())
                this.size = fc.fileSize();
            conn.setRequestProperty("RANGE", "bytes=" + size + "-"); //断点续传
            setLoadsize(conn.getLength());//下载文件长度

            is = conn.openInputStream();
            int ch;
            byte[] b = new byte[1024];

            if (!fc.exists()) {//文件不存在
                fc.create();
                os = fc.openOutputStream();
            }

            else {//文件已经存在
                fc.truncate(size);
                os = fc.openOutputStream(size);
            }

            while ((ch = is.read(b)) != -1) {
                    os.write(b, 0, ch);
                }

            fc.close();
            os.close();
            is.close();
            conn.close();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    public void setLoadsize(long loadsize) {
        this.loadsize = loadsize;
    }

    public long getLoadsize() {
        return loadsize;
    }

    public long getSize() {
        return size;
    }

}




本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/laigb/archive/2009/03/15/3992367.aspx
分享到:
评论

相关推荐

    J2ME实现的断点续传,解决下载文件问题

    J2ME实现的断点续传,解决下载文件问题

    j2me不能调试问题已解决

    这是解决j2me不能调试的问题。在做移动开发时所遇到的问题,根据此文件就可以解决问题!

    java源码包---java 源码 大量 实例

     这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失。使用时候只需在控制台窗口执行jar就可以了。 Java 3DMenu 界面源码 5个目标文件 ...

    JAVA上百实例源码以及开源项目

     这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失。使用时候只需在控制台窗口执行jar就可以了。 Java 3DMenu 界面源码 5个目标文件 ...

    java源码包4

     这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失。使用时候只需在控制台窗口执行jar就可以了。 Java 3DMenu 界面源码 5个目标文件 ...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    J2ME优化压缩PNG文件 4个目标文件 内容索引:JAVA源码,综合应用,J2me游戏,PNG,图形处理 这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失...

    java源码包2

     这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失。使用时候只需在控制台窗口执行jar就可以了。 Java 3DMenu 界面源码 5个目标文件 ...

    java源码包3

     这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失。使用时候只需在控制台窗口执行jar就可以了。 Java 3DMenu 界面源码 5个目标文件 ...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    J2ME优化压缩PNG文件 4个目标文件 内容索引:JAVA源码,综合应用,J2me游戏,PNG,图形处理 这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失...

    JAVA上百实例源码以及开源项目源代码

     这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失。使用时候只需在控制台窗口执行jar就可以了。 Java 3DMenu 界面源码 5个目标文件 ...

Global site tag (gtag.js) - Google Analytics