`
wanchong998
  • 浏览: 232890 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

J2ME 文件下载实例 jar包为例

    博客分类:
  • J2me
阅读更多
package com.wanchong;
/**
* 作者:万冲
* QQ:569845790
* Mail:wanchong998@qq.com
*/
import javax.microedition.lcdui.Display;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

public class DMIDlet extends MIDlet{

protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO Auto-generated method stub

}

protected void pauseApp() {
// TODO Auto-generated method stub

}

protected void startApp() throws MIDletStateChangeException {
// TODO Auto-generated method stub
Display.getDisplay(this).setCurrent(new DCanvas());
}

}



package com.wanchong;
/**
* 作者:万冲
* QQ:569845790
* Mail:wanchong998@qq.com
*/
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Enumeration;
import java.util.Vector;

import javax.microedition.io.Connector;
import javax.microedition.io.HttpConnection;
import javax.microedition.io.file.FileConnection;
import javax.microedition.io.file.FileSystemRegistry;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;

public class DCanvas extends Canvas implements Runnable{



Image image;

public DCanvas()
{
setFullScreenMode(true);
repaint();
//启动下载线程
new Thread(this).start();
}
String downFilecon=null;

protected void paint(Graphics g) {
// TODO Auto-generated method stub
g.setColor(0x0);
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(0xff0000);
g.drawString("正在下载中....", 0, 0, 0);
if(downFilecon!=null){
g.setColor(0xff0000);
g.drawString(downFilecon, 50, 50, 0);
}
}


public void run() {
// TODO Auto-generated method stub
try {
connect();
} catch (Exception e) {
e.printStackTrace();
}

}

String url = "http://www.xxx.com/wandown/wan_down_test.jar";
public void connect() throws Exception
{
HttpConnection http = null;
InputStream is = null;
OutputStream os = null;
byte[] data = null;
try
{
http = getHttpConnection(url);

int code = http.getResponseCode();
// 返回200 表示连接成功
if (code == HttpConnection.HTTP_OK)
{
is = http.openInputStream();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int ch = -1;
while ((ch = is.read()) != -1) {
baos.write(ch);
//System.out.println(ch);
}
data = baos.toByteArray();

}
else
{
System.out.println("网络连接错误");
}
//下载图片数据完成后创建图片
if(data != null)
{



// image = Image.createImage(data, 0, data.length);
//repaint();//重绘


int t = this.saveFile("file://localhosst/root1/wanchong.jar",data, true);
downFilecon = "下载完成!";

}

}
finally
{
if(os != null)
{
os.close();
os = null;
}

if(is != null)
{
is.close();
is = null;
}
if(http != null)
{
http.close();
http = null;
}
}
}


/**
* 取得一个URL的连接
* @param url
* @return
* @throws Exception
*/
private HttpConnection getHttpConnection(String url) throws Exception
{
HttpConnection http = (HttpConnection) Connector.open(url);
http.setRequestProperty("Content-Type", "application/octet-stream");//get
http.setRequestMethod(HttpConnection.GET);

return http;
}
/**
* 保存文件 
* @param path    文件路径
* @param fileData 文件数据
* @param overrite 是否要强制覆盖
* @return 1:成功写入文件 -1:文件已经存在没有重写 0:写入文件时出错
*
*/
public int saveFile(String path, byte[] fileData, boolean overrite) {
try {

FileConnection fc = (FileConnection) (Connector.open(path));

if (fc.exists()) {
if (overrite) {
fc.delete(); //如果文件已经存在,先删除
fc.create();
fc.setWritable(true);
OutputStream os = fc.openOutputStream();
os.write(fileData,0,fileData.length);
os.close();
return 1;
} else
return -1;
} else {
fc.create();
fc.setWritable(true);
OutputStream os = fc.openOutputStream();
os.write(fileData,0,fileData.length);
os.close();
return 1;
}
} catch (Exception e) {
System.out.println("saveFileErr:" + e.getMessage());
e.printStackTrace();
return 0;
}
}
/**
* 获取路径
* @return
*/
    public String[] DeviceGetRoots() {
        Enumeration enumRoot = FileSystemRegistry.listRoots();// 返回根目录组成的序列
        Vector list = new Vector();
        while (enumRoot.hasMoreElements()) {
            list.addElement(enumRoot.nextElement());
        }

        String[] ret = null;
        if (list.size() > 0) {
            ret = new String[list.size()];
            for (int i = 0; i < list.size(); i++) {
                ret[i] = (String) list.elementAt(i);
            }
        }
        return ret;
    }

}
分享到:
评论

相关推荐

    J2ME手机移动无线开发最新开发包 WTK Java(TM) Wireless Toolkit 2.5

     lib目录: J2ME程序库,Jar包与控制文件  session目录:性能监控保存信息  wtklib目录: JWTK主程序与模拟器外观  WTK是用来开发MIDP的,为了让MIDlet可以顺利编译和执行,WTK必须具有CLDC和MIDP的类库,WTK...

    J2ME开发实例6.rar_SocketTest.jar_httptest.j

    J2ME开发实例,内含有可运行的实例代码!

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

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

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

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

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

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

    计算机毕业设计-JAVA-基于J2ME的手机游戏开发-贪吃蛇

    随着通信技术的发展和手机的普及,手机游戏的开发技术...说明:运行此文件需要安装jre1.4以上,在解压贪吃蛇压缩包,双击 “贪吃蛇.jar” 文件,即可运行贪吃蛇游戏,若打不开了,请将jar文件的打开方式改为javaw.exe

    java源码包4

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

    java源码包2

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

    java源码包3

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

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

    Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密 Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四”...

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

    Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密 Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四”...

    Java国外游戏实例-附源码.rar

    一个由国外同行写的Java游戏实例-附源码,包括JAR开发包以及资源文件,主要是为以前的Nokia手机而编写的,属于J2me游戏的范畴,虽然现在有些过时,不过Java达人可轻松实现Android代码转换,将本游戏迁移到安卓智能机...

    J2ME MIDP 2.0 无线设备编程的一些源码JAVA源码

    J2ME MIDP 2.0 无线设备编程的一些源码,像是一本书中的实例,都比较简单,基础性东西,新手可能会喜欢,附有少量游戏代码,截图上有具体的内容。 J2ME MIDP 2.0 无线设备编程的一些源码 (3 folders, 2 files, 1.38...

    SUN MIDP2.0源码开发包.rar

    SUN官方的资料,含源码及实例,MIDP是用于J2ME手机游戏开发的资源包,前些年很热的JAVA相关类库包。

    基于NetBeans的javaME编程

    基于NetBeans的JavaME应用开发实例。详尽的代码,完整的实例,作为学习手机编程的好帮手。 J2ME可以开发jar格式的应用软件和小游戏。

    iuhyiuhkjh908u0980

    1) 手工安装 从这里下载你想要的版本,在任何你想的地方解开下载的zip文件,并复制ivy的jar文件到你的ant的lib目录(ANT_HOME/lib). 如果你使用ant 1.6.0或者更高,你可以简单的到src/example/hello-ivy 目录并运行...

    JAVA 学习/工作 笔记

    这里需要说明的时,该文档是本人5年工作经验的积累,文档中大部分知识点来源于实际工作中的总结,(除了JAR等资源文件外)其代码都是可运行的,还有一部分知识来源于网络或者其他书籍,这里做一些收集,使该体系更加...

    新版Android开发教程.rar

    � A ndroid 在设计初期就考虑了与现其有业务的融合,改变以往从计算机为主改成从手机使用为导向。新 生应用如:G oogle 地图及其衍生应用、 GMail 、 GTalk 等。 � GPS 卫星导航功能,手机照相, MP3 ,蓝芽等均...

    JAVA 五年的工作经验和学习笔记

    这里需要说明的时,该文档是本人5年工作经验的积累,文档中大部分知识点来源于实际工作中的总结,(除了JAR等资源文件外)其代码都是可运行的,还有一部分知识来源于网络或者其他书籍,这里做一些收集,使该体系更加...

Global site tag (gtag.js) - Google Analytics