android 将数据以文件的形式保存进sd卡并调用系统所装软件打开

来源:互联网 发布:网络借贷平台推广渠道 编辑:程序博客网 时间:2024/05/18 01:49

保存进sd卡  

直接调用saveToSDCard方法,参数一:文件名(如果文件名为xx.txt则以txt形式存在)。参数二:你所要保存的内容

/** * 保存到SD卡 *  * @param filename *            文件名 * @param filecontent *            内容 * @throws Exception */public void saveToSDCard(String filename, String filecontent)throws Exception {// 判断是否存在SD卡if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {// 创建文件File file = new File(Environment.getExternalStorageDirectory(),filename);FileOutputStream outStream = new FileOutputStream(file);outStream.write(filecontent.getBytes()); // 写入内容outStream.close(); // 关闭文件流} else {Toast.makeText(XieYiActivity.this, "sd卡不可用", 1).show();}}
   // 保存进sd卡   saveToSDCard("GongLu_xieyi.txt","要保存的内容");


调用系统所装软件打开

/** * 打开文件 *  * @param file */private void openFile(File file) {Intent intent = new Intent();intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);// 设置intent的Action属性intent.setAction(Intent.ACTION_VIEW);// 获取文件file的MIME类型String type = getMIMEType(file);// 设置intent的data和Type属性。intent.setDataAndType(/* uri */Uri.fromFile(file), type);// 跳转startActivity(intent);}

/** * 根据文件后缀名获得对应的MIME类型。 *  * @param file */private String getMIMEType(File file) {String type = "*/*";String fName = file.getName();// 获取后缀名前的分隔符"."在fName中的位置。int dotIndex = fName.lastIndexOf(".");if (dotIndex < 0) {return type;}/* 获取文件的后缀名 */String end = fName.substring(dotIndex, fName.length()).toLowerCase();if (end == "")return type;// 在MIME和文件类型的匹配表中找到对应的MIME类型。for (int i = 0; i < MIME_MapTable.length; i++) { // MIME_MapTable??在这里你一定有疑问,这个MIME_MapTable是什么?if (end.equals(MIME_MapTable[i][0]))type = MIME_MapTable[i][1];}return type;}

private final String[][] MIME_MapTable = {// {后缀名, MIME类型}{ ".3gp", "video/3gpp" },{ ".apk", "application/vnd.android.package-archive" },{ ".asf", "video/x-ms-asf" },{ ".avi", "video/x-msvideo" },{ ".bin", "application/octet-stream" },{ ".bmp", "image/bmp" },{ ".c", "text/plain" },{ ".class", "application/octet-stream" },{ ".conf", "text/plain" },{ ".cpp", "text/plain" },{ ".doc", "application/msword" },{ ".docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document" },{ ".xls", "application/vnd.ms-excel" },{ ".xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" },{ ".exe", "application/octet-stream" },{ ".gif", "image/gif" },{ ".gtar", "application/x-gtar" },{ ".gz", "application/x-gzip" },{ ".h", "text/plain" },{ ".htm", "text/html" }, { ".html", "text/html" },{ ".jar", "application/java-archive" },{ ".java", "text/plain" },{ ".jpeg", "image/jpeg" },{ ".jpg", "image/jpeg" },{ ".js", "application/x-javascript" },{ ".log", "text/plain" },{ ".m3u", "audio/x-mpegurl" },{ ".m4a", "audio/mp4a-latm" },{ ".m4b", "audio/mp4a-latm" },{ ".m4p", "audio/mp4a-latm" },{ ".m4u", "video/vnd.mpegurl" },{ ".m4v", "video/x-m4v" },{ ".mov", "video/quicktime" },{ ".mp2", "audio/x-mpeg" },{ ".mp3", "audio/x-mpeg" },{ ".mp4", "video/mp4" },{ ".mpc", "application/vnd.mpohun.certificate" },{ ".mpe", "video/mpeg" },{ ".mpeg", "video/mpeg" },{ ".mpg", "video/mpeg" },{ ".mpg4", "video/mp4" },{ ".mpga", "audio/mpeg" },{ ".msg", "application/vnd.ms-outlook" },{ ".ogg", "audio/ogg" },{ ".pdf", "application/pdf" },{ ".png", "image/png" },{ ".pps", "application/vnd.ms-powerpoint" },{ ".ppt", "application/vnd.ms-powerpoint" },{ ".pptx","application/vnd.openxmlformats-officedocument.presentationml.presentation" },{ ".prop", "text/plain" }, { ".rc", "text/plain" },{ ".rmvb", "audio/x-pn-realaudio" }, { ".rtf", "application/rtf" },{ ".sh", "text/plain" }, { ".tar", "application/x-tar" },{ ".tgz", "application/x-compressed" }, { ".txt", "text/plain" },{ ".wav", "audio/x-wav" }, { ".wma", "audio/x-ms-wma" },{ ".wmv", "audio/x-ms-wmv" },{ ".wps", "application/vnd.ms-works" }, { ".xml", "text/plain" },{ ".z", "application/x-compress" },{ ".zip", "application/x-zip-compressed" }, { "", "*/*" } };
用法
File file = new File(Environment.getExternalStorageDirectory().getCanonicalPath() + "/GongLu_xieyi.txt");openFile(file);  //根据路径找到文件并显示出来


0 0
原创粉丝点击