`
zj360202
  • 浏览: 29836 次
  • 性别: 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(Java Micro Edition)平台上实现断点续传,可以为移动设备上的文件下载提供可靠的解决方案。本文将深入探讨J2ME中实现断点续传的关键技术点,并给出相关实现思路。 首先,理解断点续传的基本原理。断点续传...

    J2ME中文开发教程(附带Myeclipse用J2ME插件)

    4. **网络编程**:利用J2ME的Connection API进行HTTP请求,实现数据的下载和上传。 5. **数据存储**:通过Record Management System (RMS) 存储应用程序数据。 6. **事件处理**:理解并编写事件监听器,响应用户的...

    使用NetBeans开发J2ME应用程序

    将这两个文件发送到目标设备或应用商店,用户就可以下载和安装你的J2ME应用了。 ### 8. 进阶学习 随着技能的提升,你可以学习更复杂的J2ME特性,如网络通信、数据存储、多媒体支持等。同时,NetBeans还支持插件...

    j2me 开发工具的使用

    然后在“文件”&gt;“新建项目”中选择J2ME相关的项目类型。 **3. 创建项目** 在NetBeans中创建J2ME项目,可以选择Mobile Application或Wireless Toolkit (WTK) Application。WTK是Sun Microsystems提供的J2ME开发...

    J2ME安装配置步骤(图解)

    J2ME开发需要Java Wireless Toolkit(WTK),它提供了模拟器和必要的库文件。前往Oracle官网(已不再提供直接下载,可能需要在互联网上搜索第三方下载源)下载适合你JDK版本的WTK,例如WTK 2.5.2。 3. **配置JRE**...

    使用eclipse开发J2ME应用程序(上)

    - 在项目中,找到`JAD`(Java Application Descriptor)文件,这是J2ME应用程序的元数据文件。 - 使用文本编辑器或Eclipse的属性编辑器,设置MIDlet的名称、版本、显示名称等关键属性。 5. **测试与调试** - 在...

    J2ME WTK2.2

    5. **打包和部署工具**:WTK 提供了将应用程序打包成JAR和JAD文件的工具,这些文件可以被上传到服务器,然后由用户下载安装到他们的设备上。 6. **示例和文档**:WTK 2.2 还附带了丰富的示例代码和详细文档,帮助...

    使用eclipse开发J2ME应用程序(下)

    你可以设置断点,查看变量值,单步执行代码,甚至在模拟器中实时检查应用状态。确保在Eclipse中配置了正确的WTK模拟器,以便在开发过程中能够进行有效的测试。 此外,J2ME应用程序需要考虑的另一个关键因素是兼容性...

    eclipse j2me插件

    - **调试器**:允许开发者设置断点、查看变量值和调用栈,以便查找并修复错误。 5. **J2ME框架**: 开发J2ME应用时,通常会用到KVM(Java Virtual Machine for Embedded Devices)和CLDC(Connected Limited ...

    J2ME插件包

    同时,你也可以创建JAD文件,它包含了应用程序的元数据,如版本信息和下载位置。 5. **模拟器测试**:使用WTK提供的模拟器进行应用测试,检查功能和性能。模拟器可以模拟不同的设备特性,如屏幕尺寸、键盘输入和...

    Motorola J2ME SDK 5.3.1

    完成开发和测试后,开发者可以将应用程序打包成JAR和JAD文件,通过OTA(Over-the-Air)技术或者连接到电脑进行安装到实际的摩托罗拉手机上。 6. **API支持**: 摩托罗拉J2ME SDK可能还包含了特定于摩托罗拉设备的...

    J2ME小闹钟

    在SUN模拟器中开发J2ME应用时,开发者可以利用其丰富的调试工具,如查看和修改变量值、跟踪代码执行流程、设置断点等。此外,模拟器还可以模拟不同的设备特性,如屏幕尺寸、键盘输入和网络连接,帮助开发者测试各种...

    使用Eclipse调试J2ME应用程序.zip_Eclipse_eclipse j2me_j2me_zip

    3. 添加J2ME SDK的库文件,通常是` wtklib `目录下的所有.jar文件。 **步骤五:设置运行配置** 1. 选择“Run” -&gt; “Run Configurations...”。 2. 在左侧树形结构中,选择“Java Application”,然后点击“New ...

    jdb.rar_j2me

    8. **调试工具**:JDB(Java Debugger)是J2ME的调试工具,可以帮助开发者检查代码执行、设置断点、查看变量状态等。对于学习和优化代码至关重要。 综上所述,"jdb.rar_j2me" 包含了J2ME游戏开发的多个关键知识点,...

    j2me_wireless_toolkit-2_0-zh.zip

    1. **wtklib**:这是J2ME WTK的核心库文件,包含运行时环境和模拟器所需的类库。开发者可以使用这些库来构建和运行J2ME应用程序。 2. **docs**:这部分包含WTK的API文档,对于理解J2ME API的使用至关重要。开发者...

    J2ME 无线音乐随身听

    这涉及文件下载管理,包括进度显示、断点续传和错误处理。为了节省存储空间,可能会采用高效的压缩算法,或者提供音乐质量选择,让用户根据需要选择下载的音质。 本地存储管理是另一个关键方面。由于移动设备的存储...

    基于Eclipse环境的J2ME应用程序开发实例源码

    8. **错误处理和调试**:学习如何在Eclipse中设置断点、查看日志和调试J2ME应用,这对于问题定位至关重要。 9. **打包与部署**:了解如何将应用打包成JAR文件,以及如何将其安装到实际设备或模拟器上进行测试。 ...

    J2ME模拟器 KEmulator Lite V0.9.8 中文版

    5. **文件管理**:用户可以方便地导入和导出JAR文件,例如,压缩包中的QQ2007.jar软件,就是一款基于J2ME的早期QQ版本,可以通过KEmulator Lite在电脑上重温这款经典应用。 6. **自定义设置**:模拟器允许用户根据...

    J2ME开发网FAQ集锦

    - J2ME支持HTTP和WAP协议进行网络通信,可以实现数据的下载、上传和网页浏览。 7. **文件系统** - 通过RecordStore API,开发者可以在设备上存储和读取数据,尽管资源有限,但依然提供了基本的数据持久化功能。 ...

    j2me实现视频播放

    - 考虑到J2ME设备可能具有网络连接,可以设计实现播放网络上的视频流,这需要处理网络连接、数据缓冲以及断点续传等问题。 在实现过程中,开发者可能还需要对设备进行适配,因为不同型号的手机可能有不同的屏幕...

Global site tag (gtag.js) - Google Analytics