开发环境:
1、模拟器用sun java(TM)wireless Toolkit 2.5 CLDC
2、FTP 用filezilla 开源FTP服务器
手机FTP开源项目ftp2me的应用
用的规范是RFC959,下面是主要的调用方法,附件中是工程实例,有空的朋友可以下下来看看
package main;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Enumeration;
import javax.microedition.io.Connector;
import javax.microedition.io.file.FileConnection;
import ftp.Ftp2Me;
import ftp.FtpProtocolException;
public class FtpMethod implements Runnable{
private static String hostip = null;
private static int port;
private static String username = null;
private static String password = null;
Ftp2Me fm = null;
public FtpMethod(String hostip,int port,String username,String password){
this.hostip = hostip;
this.port = port;
this.username = username;
this.password = password;
Thread t = new Thread();
t.run();
}
public void run() {
try {
fm = new Ftp2Me(hostip,port,username,password);
makeDirectory("bb");
//getList("bb");
//getNlst("bb");
//upLoad("file:///root1/EditPlus.txt","bb/EditPlus.txt");
//downLoad("file:///root1/EditPlus.txt","bb/EditPlus.txt");
//reName("bb/ff.txt","bb/bb.txt");
//delfile("bb/aa.txt");
//remove("bb");
} catch (IOException e) {
e.printStackTrace();
} catch (FtpProtocolException e){
e.printStackTrace();
}
}
/**
* 删除文件
* @param url
*/
public void delfile(String url){
try {
fm.dele(url);
fm.disconnect();
} catch (IOException e) {
e.printStackTrace();
} catch (FtpProtocolException e) {
e.printStackTrace();
}
}
/**
* 移除(空)文件夹
* @param fileBoxUrl
* @return
*/
public boolean remove(String fileBoxUrl){
try {
fm.rmd(fileBoxUrl);
fm.disconnect();
return true;
} catch (IOException e) {
e.printStackTrace();
return false;
} catch (FtpProtocolException e) {
e.printStackTrace();
return false;
}
}
/**
* 退出
*/
public void quit(){
try {
fm.quit();
} catch (IOException e) {
e.printStackTrace();
} catch (FtpProtocolException e) {
e.printStackTrace();
}
}
/**
* 文件及文件夹重命名
* @param srcUrl
* @param newUrl
* @return
*/
public boolean reName(String srcUrl,String newUrl){
try {
fm.rnfr(srcUrl);
fm.rnto(newUrl);
fm.disconnect();
return true;
} catch (IOException e) {
e.printStackTrace();
return false;
} catch (FtpProtocolException e) {
e.printStackTrace();
return false;
}
}
/**
* 创建文件夹
* @param url
* @return
*/
public boolean makeDirectory(String url){
try {
fm.mkd(url);
fm.disconnect();
return true;
} catch (IOException e) {
e.printStackTrace();
return false;
} catch (FtpProtocolException e) {
e.printStackTrace();
return false;
}
}
/**
* 下载单个文件
* @param localurl
* @param ftpurl
* @return
*/
public boolean downLoad(String localurl,String ftpurl){
try {
FileConnection f = (FileConnection) Connector.open(localurl);
if(!f.exists()){
f.create();
}
OutputStream os = f.openOutputStream();
fm.retr(os,ftpurl);
fm.disconnect();
f.close();
os.close();
return true;
} catch (IOException e) {
e.printStackTrace();
return false;
} catch (FtpProtocolException e) {
e.printStackTrace();
return false;
}
}
/**
* 上传单个文件
* @param localurl
* @param ftpurl
* @return
*/
public boolean upLoad(String localurl,String ftpurl){
try {
FileConnection f = (FileConnection) Connector.open(localurl);
InputStream is = f.openInputStream();
fm.appe(is,ftpurl);
fm.disconnect();
f.close();
return true;
} catch (IOException e) {
e.printStackTrace();
return false;
} catch (FtpProtocolException e) {
e.printStackTrace();
return false;
}
}
/**
* 显示文件夹及文件
* @param fileBoxUrl
* @return
*/
public void getNlst(String fileBoxUrl){
try {
fm.cwd(fileBoxUrl);
Enumeration e = fm.list();
if(e != null){
while(e.hasMoreElements()){
Object o = e.nextElement();
String t = (String)o;
System.out.println(t);
}
}
} catch (IOException e) {
e.printStackTrace();
} catch (FtpProtocolException e) {
e.printStackTrace();
}
fm.disconnect();
}
/**
*显示文件
* @param fileBoxUrl
*/
public void getList(String fileBoxUrl){
try {
fm.cwd(fileBoxUrl);
Enumeration e = fm.list();
if(e != null){
while(e.hasMoreElements()){
Object o = e.nextElement();
String t = (String)o;
System.out.println(t);
}
}
} catch (IOException e) {
e.printStackTrace();
} catch (FtpProtocolException e) {
e.printStackTrace();
}
fm.disconnect();
}
}
分享到:
相关推荐
- **Wireless Toolkit (WTK)**:由Sun Microsystems提供的官方开发工具,包括模拟器和编译器,用于测试和调试J2ME应用程序。 - **NetBeans IDE**:集成开发环境,支持J2ME应用的开发,提供了强大的代码编辑、调试和...
这个压缩包"Java J2ME学习实例源码集.rar"显然是一份针对J2ME初学者的资源集合,包含了一些关于文本处理和图像处理的源代码示例。下面,我们将深入探讨这两个领域的关键知识点。 1. **文本处理**: - **文本输入与...
使用这个可以模拟j2ME的环境。但模拟器是不可以调试的,很遗憾!
8. **编译与打包**:J2ME应用的开发需要使用专用的J2ME集成开发环境(IDE),如NetBeans或Eclipse,其中包含了MIDP和CLDC的SDK。源码编译为.class文件后,需要打包成JAR,再生成JAD文件,才能在目标设备上运行。 9....
### J2ME 开发实例 #### SimpleMidletDemo 示例分析 - **文件头注释**:这段代码来源于《Learning Wireless Java》一书,作者为 Qusay Mahmoud,ISBN 编号为 0-596-00243-2。 - **类定义**:`MyMidlet` 类继承自 `...
开发J2ME应用通常需要使用Java IDE,如NetBeans、Eclipse或者JBuilder,它们都提供了J2ME项目的创建、编译和模拟器测试功能。此外,MIDlet Suite是J2ME应用的基本打包形式,包含了多个MIDlets(J2ME应用程序)以及...
**J2ME应用小实例——深入理解J2ME_pro** J2ME,全称为Java 2 Micro Edition,是Java平台的一个子集,主要用于嵌入式系统和移动设备,如手机、PDA等。J2ME_pro是针对这个平台的一系列实践教程,旨在帮助开发者深入...
创建一个计算器应用涉及使用J2ME的基础UI组件,如TextItem用于输入数字和运算符,ChoiceGroup用于选择运算类型,以及Command对象来处理用户操作。计算逻辑通常会封装在一个单独的类中,处理输入数据并返回结果。 4...
- **MIDlet**: J2ME应用程序的主要组件,负责管理应用程序的生命周期和与设备的交互。 - **LWUIT (Lightweight UI Toolkit)**: 一个轻量级的用户界面库,用于创建更丰富的图形用户界面,提高用户体验。 - **Canvas**...
8. **性能优化**:J2ME应用需要考虑内存占用和执行效率,因此优化代码以适应低性能设备是必备技能。 9. **调试和测试**:使用J2ME的模拟器进行应用调试和测试是开发过程的关键部分,我们将学习如何有效地使用这些...
J2ME应用程序在KJava虚拟机(KVM)上运行,该虚拟机解析并执行字节码,确保代码能在不同设备上兼容。理解字节码的工作原理对于优化J2ME程序的性能至关重要。 4. **网络编程** J2ME提供了对HTTP和WAP协议的支持,...
J2ME使用MIDP(Mobile Information Device Profile)和CLDC(Connected Limited Device Configuration)作为其核心规范,为开发者提供了构建移动应用的框架。MIDP提供了用户界面组件和网络访问能力,而CLDC则定义了...
J2ME程序设计实例教程
一些手机游戏资料,和大家分享!
J2ME应用程序基于两个主要组件:Connected Limited Device Configuration (CLDC) 和 Mobile Information Device Profile (MIDP)。CLDC是J2ME的基础,定义了小型设备的运行时环境,而MIDP则提供了一组特定于移动设备...
2. **Sound和MIDlet类**:J2ME支持播放MIDI和波形音频文件,Sound类用于播放音效,而MIDlet类是J2ME应用程序的主入口点,管理应用程序的生命周期。 3. **Input和Canvas类**:Canvas是用户交互的主要界面,它处理...
3. **WTK (Wireless Toolkit)**:Java开发者用来测试和模拟J2ME应用的开发工具,提供了编译、打包和模拟器等功能,便于开发者在没有实际设备的情况下进行开发和调试。 4. **UI设计**:在J2ME中,你可以使用LWUIT ...
在你下载的“J2ME实例”压缩包中,可能包含了一些基础到高级的J2ME应用示例,这些实例可能涵盖了以下几个方面: 1. **基础UI构建**: 使用MIDP API中的Canvas或Form类创建简单的用户界面,如按钮、文本输入等。 2. *...
开发J2ME应用通常使用Sun Microsystems(现Oracle)提供的Java Wireless Toolkit(J2ME WTK)或其他第三方工具,如NetBeans或Eclipse的插件。这些工具提供了模拟器,使开发者能够在桌面环境下测试和调试J2ME应用。 ...