开发环境:
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();
}
}
分享到:
相关推荐
通过HTTP,J2ME应用能够发送请求到Web服务器并接收响应,这在开发网络应用,如获取网页内容、发送数据到服务器或下载资源等场景中至关重要。 J2ME中的HTTP通信主要依赖于` javax.microedition.io.Connector`和`...
根据提供的文件信息,我们可以了解到这段...通过上述分析,我们可以看出这段代码是一个典型的J2ME应用示例,展示了如何创建和使用列表以及如何处理用户的交互事件。这对于理解J2ME平台的基本编程模型是非常有帮助的。
- **Wireless Toolkit (WTK)**:由Sun Microsystems提供的官方开发工具,包括模拟器和编译器,用于测试和调试J2ME应用程序。 - **NetBeans IDE**:集成开发环境,支持J2ME应用的开发,提供了强大的代码编辑、调试和...
这个压缩包"Java J2ME学习实例源码集.rar"显然是一份针对J2ME初学者的资源集合,包含了一些关于文本处理和图像处理的源代码示例。下面,我们将深入探讨这两个领域的关键知识点。 1. **文本处理**: - **文本输入与...
使用这个可以模拟j2ME的环境。但模拟器是不可以调试的,很遗憾!
Java 2 Micro Edition (J2ME) 是一种用于开发小型设备和嵌入式系统的 Java 平台,如...理解和熟练使用 RMS 对于开发 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小游戏,自己写的,给大家试试 j2me小游戏,自己写的,给大家试试 j2me小游戏,自己写的,给大家试试
创建一个计算器应用涉及使用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则提供了一组特定于移动设备...