首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2ME开发 >

第二个JAVA ME程序-批量增添后缀

2012-12-25 
第二个JAVA ME程序----批量添加后缀作用:为指定文件夹的每个文件添加设定的后缀(jar好像不行,我也不知道为

第二个JAVA ME程序----批量添加后缀
作用:为指定文件夹的每个文件添加设定的后缀(jar好像不行,我也不知道为什么)
还不是很完美,这个程序就这样吧,下个程序再学习去了。

文件结构:
Replace类--------主类
AddSuffix类------添加后缀
Config类---------设置文件夹,后缀
RMS类------------保存设置
ConfigThread类---没有用到,就不贴了

//Replace类import javax.microedition.lcdui.*;import javax.microedition.midlet.MIDlet;import javax.microedition.midlet.MIDletStateChangeException;public class Replace extends MIDlet implements CommandListener {final private String help = "如果不设置并且以前没设置过,就默认为E:/UCDownloaded/Z/里的文件添加.jar,否则以你设置后的为准。";final private String about = "作者:kyda\n版本:v1.1\nAll rights reserved.\n如果你有什么好的建议请站内信\n我的ID:jimieaaa";// final static int dirnum = 1, sufnum = 2;private Display display;private Command exitCommand, actCommand, configCommand, helpCommand, aboutCommand;private Form fm;private Alert helpAlert, aboutAlert;static public String sDir, sSuf;private RMS rms;private AddSuffix addSuffix;private Config config;public Replace() {rms = new RMS();sDir = rms.getConfig(1);sSuf = rms.getConfig(2);display = Display.getDisplay(this);fm = new Form("批量添加后缀");exitCommand = new Command("退出", Command.EXIT, 2);actCommand = new Command("替换", Command.OK, 2);configCommand = new Command("设置", Command.ITEM, 2);helpCommand = new Command("帮助", Command.ITEM, 2);aboutCommand = new Command("关于", Command.ITEM, 2);fm.addCommand(exitCommand);fm.addCommand(actCommand);fm.addCommand(configCommand);fm.addCommand(helpCommand);fm.addCommand(aboutCommand);}public void destroyApp(boolean arg0) throws MIDletStateChangeException {}public void pauseApp() {}public void startApp() throws MIDletStateChangeException {//fm.append("sDir = " + sDir + "\nsSuf = " + sSuf + "\n");fm.append("这是批量添加设定后缀的程序。\n\n");//fm.append("还有点小bug,设置写好后按确定,然后再进入设置,这次按取消。这样就可以正常操作了。\n");fm.append("请选择操作:\n");display.setCurrent(fm);fm.setCommandListener(this);}public void commandAction(Command cmd, Displayable arg1) {if (cmd == exitCommand) {try {rms.closeRMS();destroyApp(false);} catch (MIDletStateChangeException e) {e.printStackTrace();}notifyDestroyed();} else if (cmd == actCommand) {addSuffix = new AddSuffix(sDir, sSuf);addSuffix.Replace(fm);} else if (cmd == configCommand) {//fm.append("sDir = " + sDir + "\nsSuf = " + sSuf + "\n");config = new Config(display, fm, sDir, sSuf);//configThread.start();//try {//configThread.join();//} catch (InterruptedException e) {//e.printStackTrace();//}//sDir = rms.getConfig(1);//sSuf = rms.getConfig(2);} else if (cmd == helpCommand) {helpAlert = new Alert("帮助", help, null, AlertType.INFO);display.setCurrent(helpAlert);} else if (cmd == aboutCommand) {aboutAlert = new Alert("关于", about, null, AlertType.CONFIRMATION);display.setCurrent(aboutAlert);}}}


//AddSuffix类import java.io.*;import java.util.*;import javax.microedition.io.*;import javax.microedition.io.file.*;import javax.microedition.lcdui.Form;public class AddSuffix {private FileConnection fc, oldfile;private Enumeration enums = null;private String str, sName, sDir = "file:///", sSuf = ".", newfile = "";private int mode;public AddSuffix(String dir, String suf) {sDir += dir;sSuf += suf;mode = 1;}public AddSuffix(String dir, String name, String suf) {sDir += dir;sName = name;sSuf += suf;mode = 2;}public void Replace(Form fm) {fm.append("正在打开中...\n");try {fc = (FileConnection) Connector.open(sDir, Connector.READ);if (!fc.exists()) {fm.append("no folder!\n");return;}enums = fc.list();while (enums.hasMoreElements()) {str = enums.nextElement().toString();if (mode == 1)sName = str;try {oldfile = (FileConnection) Connector.open(sDir + str, Connector.READ_WRITE);newfile = sName + sSuf;try {oldfile.rename(newfile);} catch (IOException e) {fm.append(str + " 重命名失败!!!\n");oldfile.close();continue;}oldfile.close();fm.append("重命名 " + str + " 成功!\n");} catch (IOException e) {fm.append("文件" + str + "打开失败!\n");continue;}}fc.close();fm.append("添加后缀完成!\n");} catch (IOException e) {fm.append("文件夹打开失败!\n");e.printStackTrace();}}}


//Config类import javax.microedition.lcdui.*;public class Config implements CommandListener {private Display display;private TextField textFieldDir, textFieldSuf;private Form configForm, fm;private Command okCommand, cancelCommand;private RMS rms;private boolean isok = false;public Config() {}public Config(Display display, Form fm, String dir, String suf) {configForm = new Form("设置");textFieldDir = new TextField("设置文件夹:", dir, 100, TextField.ANY);configForm.append(textFieldDir);textFieldSuf = new TextField("要添加的后缀:", suf, 10, TextField.ANY);configForm.append(textFieldSuf);configForm.append("\n\n注意:文件夹后要加'/'\n           后缀不要加'.'\n");okCommand = new Command("确定", Command.OK, 2);cancelCommand = new Command("取消", Command.CANCEL, 2);configForm.addCommand(okCommand);configForm.addCommand(cancelCommand);this.display = display;this.fm = fm;configForm.setCommandListener(this);display.setCurrent(configForm);}public boolean isOK() {return isok;}public void commandAction(Command cmd, Displayable arg1) {if (cmd == okCommand) {rms = new RMS();rms.setConfig(1, textFieldDir.getString());rms.setConfig(2, textFieldSuf.getString());//这里一直不能实现阻塞,只能用static的了,再学习去了Replace.sDir = rms.getConfig(1);Replace.sSuf = rms.getConfig(2);rms.closeRMS();isok = true;display.setCurrent(fm);} else if (cmd == cancelCommand) {isok = true;display.setCurrent(fm);}}}


//RMS类import javax.microedition.rms.*;public class RMS {final private String fDir = "E:/UCDownloaded/Z/";final private String fSuf = "jar";private RecordStore rms;private String str = "";private byte[] record = null;public RMS() {try {rms = RecordStore.openRecordStore("Config", true);if (rms.getNumRecords() == 0) {record = fDir.getBytes();rms.addRecord(record, 0, record.length);record = fSuf.getBytes();rms.addRecord(record, 0, record.length);}} catch (RecordStoreFullException e) {e.printStackTrace();} catch (RecordStoreNotFoundException e) {e.printStackTrace();} catch (RecordStoreException e) {e.printStackTrace();}}public String getConfig(int i) {try {record = rms.getRecord(i);str = new String(record);} catch (RecordStoreNotOpenException e) {e.printStackTrace();} catch (InvalidRecordIDException e) {e.printStackTrace();} catch (RecordStoreException e) {e.printStackTrace();}return str;}public void setConfig(int i, String s) {record = s.getBytes();try {rms.setRecord(i, record, 0, record.length);} catch (RecordStoreNotOpenException e) {e.printStackTrace();} catch (InvalidRecordIDException e) {e.printStackTrace();} catch (RecordStoreFullException e) {e.printStackTrace();} catch (RecordStoreException e) {e.printStackTrace();}}public void closeRMS() {try {rms.closeRecordStore();} catch (RecordStoreNotOpenException e) {e.printStackTrace();} catch (RecordStoreException e) {e.printStackTrace();}}}

热点排行