- 浏览: 212232 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
fenglongcen:
java可以写测试脚本吗?
linux 通过脚本执行java程序 -
chensss2008:
我代为回答2楼的问题,呵呵,因为我也遇到了这个问题。使用adm ...
SVNManager使用介绍 -
小诗诗:
我想问一下怎么使用“服务器配置管理员”怎么登陆啊!!!! ...
SVNManager使用介绍 -
sbcqw93:
能创建文件夹吗?比如说:http://127.0.0.1/sv ...
SVNManager使用介绍 -
energykey:
yhjhoo 写道好像没有一个外部的jar包,请教以下如何在l ...
linux 通过脚本执行java程序
读取手机存储文件的核心代码:
程序代码所使用到的图片可在附件中下载,在真机上测试程序,可能部分手机不支持jpg和gif格式的图片,程序可能会报IOException。
package com.mopietek; import javax.microedition.midlet.MIDlet; import javax.microedition.midlet.MIDletStateChangeException; import com.sun.lwuit.Display; public class MainMIDlet extends MIDlet{ //主显示面板 private MainPanel panel = null; protected void destroyApp(boolean arg0) throws MIDletStateChangeException { } protected void pauseApp() { } protected void startApp() throws MIDletStateChangeException { Display.init(this); panel = new MainPanel(this); } public void exit(){ try { destroyApp(false); } catch (MIDletStateChangeException e) { // TODO Auto-generated catch block e.printStackTrace(); } this.notifyDestroyed(); } }
package com.mopietek; import java.io.DataInputStream; import java.io.InputStream; import java.util.Enumeration; import javax.microedition.io.Connector; import javax.microedition.io.file.FileConnection; import javax.microedition.io.file.FileSystemRegistry; import com.sun.lwuit.Button; import com.sun.lwuit.Command; import com.sun.lwuit.Component; import com.sun.lwuit.Container; import com.sun.lwuit.Dialog; import com.sun.lwuit.Form; import com.sun.lwuit.Image; import com.sun.lwuit.Label; import com.sun.lwuit.List; import com.sun.lwuit.TextArea; import com.sun.lwuit.events.ActionEvent; import com.sun.lwuit.events.ActionListener; import com.sun.lwuit.layouts.BorderLayout; import com.sun.lwuit.list.ListCellRenderer; import com.sun.lwuit.plaf.Border; public class MainPanel implements ActionListener{ //常理定义 private final String UP_DIR = ".."; private final String SEPS_STR = "/"; private final int SEPS_CHAR = '/'; private final String ROOT = "/"; private final String RES_PREFIX = "file://"; private final int BLOCK_SIZE = 256; //扩展名 private final String TEXT_EXT[] = {".TXT",".H",".HPP",".C",".CPP",".INC"}; private final String IMAGE_EXT[] = {".JPG",".JPEG",".PNG",".GIF",}; private final String WEB_EXT[] = {".HTM",".HTML",".XML",".CSS"}; //字符编码 private final String CHARACTER_CODE = "UTF-8"; //主MIDlet private MainMIDlet let = null; //主界面 private Form listForm = null; //内容列表 private List contentList = null; //显示文件用窗体 private Form textForm = null; //装载文本项目用 private TextArea text = null; //显示图片用的窗体 private Form imageForm = null; //命令 private Command cmdExit = null; private Command cmdView = null; //浏览目录/文件 private Command cmdDone = null;//退出浏览文件内容 //图标帮助类 private IconHelper helper = null; //当前目录路径 private String currentDir = null; public MainPanel(MainMIDlet mainMIDlet) { let = mainMIDlet; //初始化当前目录为根目录 currentDir = ROOT; //初始化图标帮助实例 helper = new IconHelper(); listForm = new Form(""); listForm.setLayout(new BorderLayout()); //文本显示窗体 textForm = new Form(""); //文本装载项目 text = new TextArea(); text.setWidestChar('-'); //图像显示窗体 imageForm = new Form(""); //创建命令 cmdExit = new Command("退出"); cmdView = new Command("浏览"); cmdDone = new Command("返回"); //添加命令绑定 listForm.addCommand(cmdExit); listForm.addCommand(cmdView); listForm.addCommandListener(this); //添加文字处理框 textForm.setLayout(new BorderLayout()); textForm.addComponent(BorderLayout.CENTER, text); //设置文本浏览器窗体的绑定命令 textForm.addCommand(cmdDone); textForm.addCommandListener(this); //设置图像浏览窗体的命令绑定 imageForm.addCommand(cmdDone); imageForm.addCommandListener(this); //初始化显示 new BrowseThread(currentDir,true).start(); } public void actionPerformed(ActionEvent evt) { Command c = evt.getCommand(); if(c == cmdExit){ let.exit(); }else if(c == cmdView){//查看命令 //当前列表中没有目录项 if(contentList.size() == 0){ //启动线程来浏览指定目录 new BrowseThread(ROOT,true).start(); }else{ final String url = ((MyContainer) contentList.getSelectedItem()).name.getText(); if(url.endsWith(SEPS_STR) == true){//当前项目为目录,则显示其子项目 //启动浏览线程来浏览指定目录 new BrowseThread(currentDir + url,true).start(); }else if(url.endsWith(UP_DIR) == true){ //当前项目为父目录,则需要回退 backward(); }else{ //当前目录为文件 //启动浏览线程来浏览指定文件 new BrowseThread(currentDir + url,false).start(); } } }else if(c == cmdDone){//关闭文本阅读,返回目录浏览 //启动浏览线程来浏览指定文件 new BrowseThread(currentDir,true).start(); } } //--------------------------------------------------------------- //回退浏览当前目录的父目录内容 private void backward(){ //获取当前目录的父目录名称 int pos = currentDir.lastIndexOf(SEPS_CHAR,currentDir.length() - 2); if(pos != -1){//存在上层目录 currentDir = currentDir.substring(0,pos + 1); }else{//不存在上层目录即根目录 currentDir = ROOT; } //启动浏览线程来浏览指定目录 new BrowseThread(currentDir,true).start(); } class MyContainer extends Container{ private Label name; public MyContainer(String source){ name = new Label(source); name.getStyle().setBgTransparency(0); addComponent(name); } } class MyRenderer implements ListCellRenderer{ private Label focus; public MyRenderer(){ focus = new Label(); Border b = Border.createLineBorder(1,0xff0000); focus.getStyle().setBorder(b); } public Component getListCellRendererComponent(List list, Object value, int index, boolean selected) { return (MyContainer) value; } public Component getListFocusComponent(List list) { return focus; } } class BrowseThread extends Thread{ private String url = null; private boolean isDirectory = false; public BrowseThread(final String _url,final boolean _isDirectory){ url = _url; isDirectory = _isDirectory; } public void run(){ //浏览目录或文件 if(isDirectory){ text.setText(""); imageForm.removeAll(); showDir(url); }else{ showFile(url); } } //显示指定目录 public void showDir(final String dir){ //设置列表title Enumeration em = null; FileConnection fc = null; //设置当前目录 currentDir = dir; //初始化列表 listForm.removeAll(); contentList = new List(); contentList.setListCellRenderer(new MyRenderer()); listForm.addComponent(BorderLayout.CENTER,contentList); try{ if(dir.equals(ROOT) == true){ //枚举根目录列表 em = FileSystemRegistry.listRoots(); }else{ //非根目录 fc = (FileConnection) Connector.open(RES_PREFIX + dir); em = fc.list(); //添加上层根目录 MyContainer up = new MyContainer(UP_DIR); up.name.setIcon(helper.getIconByExt("/")); contentList.addItem(up); } while(em.hasMoreElements()){ String fileName = (String)em.nextElement(); if(fileName.endsWith(SEPS_STR)){ //如果为目录 MyContainer c = new MyContainer(fileName); c.name.setIcon(helper.getIconByExt("/")); contentList.addItem(c); System.out.println(fileName); System.out.println("It's OK!"); }else{ //非目录(文件) MyContainer c = new MyContainer(fileName); c.name.setIcon(helper.getIconByExt(extractExt(fileName))); contentList.addItem(c); } } listForm.revalidate(); //初始化选择 contentList.setSelectedIndex(0,true); //关闭文件连接 if(fc != null){ fc.close(); } }catch(Exception ex){ ex.printStackTrace(); } listForm.show(); } //--------------------------------------------------------- //显示指定文件内容 private void showFile(final String fileName){ String tempFileName = fileName.toUpperCase(); try{ FileConnection fc = (FileConnection) Connector.open(RES_PREFIX + fileName,Connector.READ); if(!fc.exists()){ Dialog.show("Exception", "未找到文件", "ok","cancel"); } if(isEndWithIn(tempFileName, IMAGE_EXT) == true){ //图片文件 //创建流 InputStream is = fc.openInputStream(); Image img = Image.createImage(is); //设置图片窗体Title imageForm.setTitle(getRelativeName(fileName)); imageForm.setLayout(new BorderLayout()); imageForm.removeAll(); Button b = new Button(img); imageForm.addComponent(BorderLayout.CENTER,b); //关闭流 is.close(); //关闭文件连接 fc.close(); imageForm.show(); }else if(isEndWithIn(tempFileName,TEXT_EXT)){//文本文件 int rawFileSize = (int) (fc.fileSize()); int fileSize = ((rawFileSize / BLOCK_SIZE) + 1) * BLOCK_SIZE; //依据文件内容设置title textForm.setTitle(getRelativeName(fileName) + "," + rawFileSize + "/" + fileSize); DataInputStream dis = fc.openDataInputStream(); byte [] buffer = new byte[rawFileSize]; //读取文件内容 dis.readFully(buffer); textForm.setLayout(new BorderLayout()); textForm.removeAll(); text.setText(new String(buffer,"UTF-8")); textForm.addComponent(BorderLayout.CENTER,text); //关闭流 dis.close(); //关闭文件连接 fc.close(); textForm.show(); }else{ Form f = new Form("不认识图片"); f.show(); } }catch(Exception ex){ ex.printStackTrace(); Dialog.show("Exception:", ex.toString(), "OK",null); } } private boolean isEndWithIn(final String fileName,final String[] extArray){ for(int i=0; i<extArray.length;i++){ if(fileName.endsWith(extArray[i]) == true){ return true; } } return false; } //---------------------------------------------------------------- //从完整文件名种提取相对文件名 private String getRelativeName(final String fileName){ int pos = fileName.lastIndexOf(SEPS_CHAR); if(pos == -1){ return (""); } return (fileName.substring(pos + 1, fileName.length())); } //---------------------------------------------------------------- //获取扩展名(不包含'.'符号) private String extractExt(final String fileName){ int pos = fileName.lastIndexOf('.'); return (fileName.substring(pos + 1, fileName.length()).toLowerCase()); } //------------------------------------------------- } }
package com.mopietek; import java.io.IOException; import java.util.Hashtable; import com.sun.lwuit.Image; public class IconHelper { //图标资源 private Image imgFolder; private Image unknownImage; private Image textImage; //Audio private Image audioImage; //Picture private Image picImage; private Image jpgImage; //Video private Image sgpImage; private Image aviImage; private Image wmvImage; private Image mpgImage; //Web private Image zipImage; private Image htmlImage; private Image xmlImage; //Source private Image cImage; private Image cppImage; private Image headerImage; //图标管理容器 private Hashtable iconTable; public IconHelper(){ iconTable = new Hashtable(); try{ //载入图标资源 imgFolder = Image.createImage("/filetype/folder.png"); unknownImage = Image.createImage("/filetype/unknown.png"); textImage = Image.createImage("/filetype/text.png"); //Audio audioImage = Image.createImage("/filetype/audio.png"); //Picture picImage = Image.createImage("/filetype/pic.png"); jpgImage = Image.createImage("/filetype/jpg.png"); //Video sgpImage = Image.createImage("/filetype/3gp.png"); aviImage = Image.createImage("/filetype/avi.png"); wmvImage = Image.createImage("/filetype/wmv.png"); mpgImage = Image.createImage("/filetype/mpg.png"); //Web zipImage = Image.createImage("/filetype/zip.png"); htmlImage = Image.createImage("/filetype/html.png"); xmlImage = Image.createImage("/filetype/xml.png"); //Source cImage = Image.createImage("/filetype/c.png"); cppImage = Image.createImage("/filetype/cpp.png"); headerImage = Image.createImage("/filetype/header.png"); }catch(IOException e){ //图标资源 imgFolder = null; unknownImage = null; textImage = null; //Audio audioImage = null; //Picture picImage = null; jpgImage = null; //Video sgpImage = null; aviImage = null; wmvImage = null; mpgImage = null; //Web zipImage = null; htmlImage = null; xmlImage = null; //Source cImage = null; cppImage = null; headerImage = null; e.printStackTrace(); } initTable(); } private void initTable() { //Key为扩展名(不包括'.'符号),值为content type iconTable.put("/", imgFolder); iconTable.put("", unknownImage); iconTable.put("txt", textImage); //Source iconTable.put("c", cImage); iconTable.put("cpp", cppImage); iconTable.put("h", headerImage); //Web iconTable.put("html", htmlImage); iconTable.put("htm", htmlImage); iconTable.put("xml", xmlImage); iconTable.put("zip", zipImage); iconTable.put("jar", zipImage); //audio iconTable.put("mp3", audioImage); iconTable.put("wma", audioImage); iconTable.put("mid", audioImage); iconTable.put("wav", audioImage); //Picture iconTable.put("gif", picImage); iconTable.put("png", picImage); iconTable.put("jpg", jpgImage); iconTable.put("jepg", jpgImage); //Video iconTable.put("3gp", sgpImage); iconTable.put("avi", aviImage); iconTable.put("wmv", wmvImage); iconTable.put("mpeg", mpgImage); iconTable.put("mpg", mpgImage); iconTable.put("mp4", mpgImage); } //按照扩展名(不包括'.'符号) 获取文件的图标对象 public Image getIconByExt(final String extension) { Image temp = (Image) iconTable.get(extension); //是否为空,则使用默认图标替代 return ((temp == null) ? unknownImage : temp); } }
程序代码所使用到的图片可在附件中下载,在真机上测试程序,可能部分手机不支持jpg和gif格式的图片,程序可能会报IOException。
- filetype.rar (32 KB)
- 下载次数: 83
- LwuitFileDemo1.jar (138.3 KB)
- 下载次数: 109
发表评论
-
Lwuit---小细节疑难杂症整理
2010-05-04 17:41 14471、textArea 显示文本内容,在部分手机上无法显示全部内 ... -
Lwuit布局管理
2010-05-04 15:40 1642布局管理器中一个比较特殊的管理器CoordinateLa ... -
J2ME Socket编程
2010-04-25 23:35 4095Socket是套接字,它是基于TCP协议的传输。 在J2ME ... -
Alert用法
2010-04-08 18:21 3884在J2ME中,关于Alert类是用来向用户发出警告信息,一般A ... -
Midlet与Servlet传递Cookie
2010-03-31 11:47 2258Cookie在Java ME平台中没有得到支持,因此要想维持客 ... -
J2ME手机编程中使用字体与游戏键值
2010-03-25 10:02 1411J2me中关于字体Font类的介绍: Font fon ... -
J2me低级UI界面中Canvas类与GameCanvas类
2010-03-23 10:18 3366关于MIDlet类中destroyApp( ... -
J2ME从服务器解析并读取xml文件
2010-03-09 16:55 2224J2ME从服务器解析并读取xml文件,其实跟在本地读取xml文 ... -
J2me语言国际化
2010-03-04 16:39 1598J2me手机开发在早期的WTK没用jsr 238包,所以程序要 ... -
J2ME下载并读取服务器txt文件
2010-03-04 11:56 2058J2ME下载并读取服务器txt文件,我用的公司的服务器,大家如 ... -
J2ME解析并读取xml文件
2010-03-03 17:37 5781用KXML解析读取xml文本 首先需要kxml2-2.3.0. ... -
J2ME手机本地文件上传服务器
2010-02-23 10:20 2727J2ME手机本地存储文件的上传,核心代码如下: pac ... -
J2ME实现从服务器端下载文件(J2me for HttpConnection)
2010-02-07 21:54 2627J2ME实现从服务器端下载文件: 我以下载服务器文件并在手机客 ... -
Lwuit中关于TextField限制输入为数字的内容代码
2010-01-28 10:50 2049Lwuit中关于TextField限制输入为数字的内容代码 ... -
Lwuit 钟表ClockWidget小应用程序
2010-01-26 12:59 1620J2ME关于Lwuit应用的钟表ClockWidget程序 ... -
Lwuit实现九宫图特效程序
2010-01-25 12:16 2208最近在网上看到很多九宫图的程序说明,但大多数是转载的,一些知识 ... -
J2ME中关于Lwuit的标签的综合使用
2010-01-22 18:02 2480J2ME中关于Lwuit的标签的综合使用 由于我使用的主题对 ... -
Lwuit中关于TextArea、TabbedPane组件的使用说明
2010-01-21 16:15 2186TextArea组件的使用说明代码如下: package ... -
Lwuit中CheckBox、ComboBox组件的使用说明
2010-01-21 15:53 2413这几天刚刚开始接触LWUIT,前两天从网上搜到一兄台的博客写的 ... -
J2ME配置Lwuit
2010-01-20 11:34 2172使用Eclipse加入Lwuit jar包配置方法 1.先 ...
相关推荐
“读取文本文件”位于函数选板“编程→文件I/O→读取文本文件”,图标和接线端如图1所示。 图1 读取文本文件图标及端子 读取文本文件读取指定文件中的字符,默认为读取文件中所有字符,接线端“计数”可以...
对于读取本地文本文档,由于浏览器的安全限制,直接使用AJAX无法访问本地文件系统。因此,我们需要使用HTML5的File API来实现这一功能。用户通常需要通过文件输入控件(`<input type="file">`)选择文件,然后使用...
在“易语言多线程读取大文本文件”这个主题中,核心概念是多线程和文件I/O操作。多线程允许程序同时执行多个独立的任务,提高效率,尤其在处理大型文件时,可以将任务分割成多个部分,由不同的线程并行处理。这可以...
delphi保存读取utf-8的文本文件.mht
本文将深入探讨如何使用C#进行文本文件的读取、写入、以及文件和目录的相关操作,以WindowForm窗体应用程序为例。 首先,我们关注的是文本文件的读取和写入。在C#中,`System.IO`命名空间提供了丰富的类来处理文件...
"C文本文件读取" C语言中的文本文件读取是指从文本文件中读取数据的过程,这个过程是...通过本文,我们可以看到C语言和C++语言中读取文本文件的基本步骤和实现方法,并且了解到C++语言对字符串的处理确实要强大一些。
例如,`readAsText(file)`用于读取文件内容为文本,`readAsDataURL(file)`则读取为数据URL,适合图片等二进制文件。当文件读取完成后,会触发`onload`事件,我们可以通过该事件的回调函数获取到文件内容。 2. **...
这个宏示例展示了如何利用VBA进行文件操作,读取文本文件,以及根据特定条件处理和写入数据到Excel。这对于数据分析、日志解析等任务非常有用,尤其在需要批量处理大量文本数据时能显著提高工作效率。
在ie下可以读取任意盘的文件夹和文件,目前只兼容IE6+的浏览器 只能本地运行。 如果放到服务器上 js 文件将会报错automation 服务器不能创建对象 解决方案:点击“开始→运行”并输入“regsvr32 scrrun.dll”
这个“在app中读取本地的txt文本的Android demo”就是一个典型的示例,它展示了如何根据用户操作(点击不同的按钮)加载并显示不同txt文件的内容。以下将详细介绍实现这一功能的关键步骤和技术要点。 首先,我们...
java读取本地图片文件获取流!java读取本地图片文件获取流!
在Android应用开发中,有时我们需要从本地存储的JSON文件中读取数据,这通常涉及到文件I/O操作和字符编码处理。以下将详细讲解如何在Android中读取本地JSON文件,并解决可能出现的显示乱码问题。 1. **读取本地JSON...
易语言作为一款面向初学者和专业人士的中文编程环境,提供了一种有效的方法来解决这个问题:随机读取大文本文件的一行内容。本篇将详细介绍如何使用易语言实现这个功能。 首先,理解“大文本文件随机读取一行内容”...
我们将以提供的标题"labview 读取文本文件 M到N行"及描述为基础,探讨实现这一功能的关键步骤和技术。 首先,我们需要理解LabVIEW的基本编程结构。LabVIEW是一种图形化编程语言,其核心是数据流编程,即通过连接...
在探讨“JavaScript读取本地文件”的主题时,我们主要聚焦于如何利用JavaScript在浏览器环境中读取用户计算机上的本地文件。这种功能在很多场景下都极为有用,比如在上传文件前预览其内容、数据导入导出操作等。下面...
在这个特定的案例中,我们关注的是如何利用LabVIEW以设置读取位置的形式快速读取文本文件的最后一行。这种技术对于处理大型文本文件特别有用,因为它避免了逐行遍历整个文件的低效过程。 首先,我们要理解文本文件...
读写文本文档的很多,但是用MFC来写的却不多,在网上搜了一遍,没找到自己想要的,于是自己...本文件包括读取任意.txt格式的文档,并将读取到的文件显示在界面上,还支持文档转码,从而可以读取更多编码格式的.txt文档