blackberry操作sdcard中的文件(创建文件夹/读文件/写文件)

来源:互联网 发布:三峡大学教务网络 编辑:程序博客网 时间:2024/06/05 19:53

创建文件夹:

/** * 创建用户资源文件夹 *  * @param fileRootUri * @param userQpin * @return * @throws Exception */public String createUserResourceFolder(String userQpin) {String openUri = "";if (!isExistSDCard) {openUri = STORE_URI;} else {openUri = SDCARD_URI;}FileConnection fc = null;try {fc = (FileConnection) Connector.open(openUri);if (!fc.exists()) {fc.mkdir();}fc.close();fc = (FileConnection) Connector.open(openUri + userQpin + "/");if (!fc.exists()) {fc.mkdir();}return fc.getURL();} catch (IOException e) {e.printStackTrace();} finally {if (fc != null) {try {fc.close();} catch (IOException e) {}fc = null;}}return null;}


写文件

/** * 保存文件至指定的文件夹下 *  * @param folder *            [] 具体参数请参考 example:String[] IMAGE_FOLDER = { "/image/", ".jpg" *            } * @param String *            返回文件存的路径 * @return */public String writeFile(String userQpin, String fileName, String[] folder,byte[] data) {FileConnection fc = null;String openUri = null;OutputStream outStream = null;if (!isExistSDCard) {openUri = STORE_URI;} else {openUri = SDCARD_URI;}openUri = openUri + userQpin;String fileFolderUri = openUri + folder[0];String filePathUri = openUri + folder[0] + fileName + folder[1];try {fc = (FileConnection) Connector.open(fileFolderUri);if (!fc.exists()) {fc.mkdir(); // create the file if it doesn't exist}fc.close();fc = (FileConnection) Connector.open(filePathUri);if (!fc.exists()) {fc.create();}if (data != null && data.length > 0) {outStream = fc.openOutputStream(fc.fileSize());outStream.write(data);outStream.flush();}return fc.getPath() + fc.getName();} catch (IOException e) {e.printStackTrace();LogUtil.DEBUG(LogUtil.UNIT_TEST, "save error");} finally {try {if (fc != null) {fc.close();}if (outStream != null) {outStream.close();}} catch (IOException e) {e.printStackTrace();}}return null;}


读文件

注意不要使用in.avaliable()获得文件长度,很可能出现返回为0的情况。

/** * 读取文件 * @param userQpin * @param fileName * @param folder * @return */public byte[] readFile(String filePathUri) {FileConnection fc = null;DataInputStream in = null;try {fc = (FileConnection) Connector.open(filePathUri);in = fc.openDataInputStream();int length = (int)fc.fileSize();byte[] data = new byte[length];in.read(data, 0, length);return data;} catch (IOException e) {e.printStackTrace();} finally {try {if (fc != null) {fc.close();}if (in != null) {in.close();}} catch (IOException e) {e.printStackTrace();}}return null;}


删除文件以及判断sdcard是否挂载

/** * 删除文件 *  * @param filePathUri * @return */public boolean deleteFile(String filePathUri) {FileConnection fc = null;try {fc = (FileConnection) Connector.open(filePathUri);fc.delete();return true;} catch (IOException e) {e.printStackTrace();} finally {try {if (fc != null) {fc.close();}} catch (IOException e) {e.printStackTrace();}}return false;}/** * 检查当前手机是否挂载SDcard *  * @return */public boolean isExistSDCard() {Enumeration euu = null;try {euu = FileSystemRegistry.listRoots();while (euu.hasMoreElements()) {String str = (String) euu.nextElement();if (str.endsWith("/")) {str = str.substring(0, str.length() - 1);}if (SDCARD_STRING.equals(str)) {return true;}}} catch (Exception e) {e.printStackTrace();}return false;}


 

 

 

原创粉丝点击