700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Android获取手机中外置内存卡 内置内存卡 手机内存路径

Android获取手机中外置内存卡 内置内存卡 手机内存路径

时间:2018-10-21 12:54:32

相关推荐

Android获取手机中外置内存卡 内置内存卡 手机内存路径

http://www.open-/code/view/1433585940578

首先内部存储路径为/data/data/youPackageName/,下面讲解的各路径都是基于你自己的应用的内部存储路径下。所有内部存储中保存的文件在用户卸载应用的时候会被删除。

一、files

1. Context.getFilesDir(),该方法返回/data/data/youPackageName/files的File对象。

2. Context.openFileInput()与Context.openFileOutput(),只能读取和写入files下的文件,返回的是FileInputStream和FileOutputStream对象。

3. Context.fileList(),返回files下所有的文件名,返回的是String[]对象。

4. Context.deleteFile(String),删除files下指定名称的文件。

二、cache

1. Context.getCacheDir(),该方法返回/data/data/youPackageName/cache的File对象。

三、custom dir

getDir(String name,int mode),返回/data/data/youPackageName/下的指定名称的文件夹File对象,如果该文件夹不存在则用指定名称创建一个新的文件夹

//获取当前程序路径

getApplicationContext().getFilesDir().getAbsolutePath();

// 获取该程序的安装包路径 Stringpath=getApplicationContext().getPackageResourcePath();

// 获取程序默认数据库路径 getApplicationContext().getDatabasePath(s).getAbsolutePath();

//===============================================

分割线

================================================

获取手机中外置内存卡、内置内存卡、手机内存路径。思路是:先用 Environment.getExternalStorageDirectory()获得外部存储卡路径(某些机型也表现为内部存储卡路径),如没有获 取到有效sd卡插入,则使用安卓的配置文件system/etc/vold.fstab读取全部挂载信息,假如也没有可写入的sd卡,则使用getFilesDir()方式获得当前应用所在存储路径。为适应不同手机的内存情况,先分三种情况获得可存储路径phonePicsPath,后面代码较长是因为有两个工具类,复制即可,代码如下:

//首先判断是否有外部存储卡,如没有判断是否有内部存储卡,如没有,继续读取应用程序所在存储if(getExternalSdCardPath() != null){phonePicsPath = getExternalSdCardPath();}else{phonePicsPath = getFilesDir().getAbsolutePath();}

/** * 遍历 "system/etc/vold.fstab” 文件,获取全部的Android的挂载点信息 * * @return */ private static ArrayList<String> getDevMountList() { String[] toSearch = FileUtils.readFile("/system/etc/vold.fstab").split(" "); ArrayList<String> out = new ArrayList<String>(); for (int i = 0; i < toSearch.length; i++) {if (toSearch[i].contains("dev_mount")) { if (new File(toSearch[i + 2]).exists()) {out.add(toSearch[i + 2]); }} } return out; }/** * 获取扩展SD卡存储目录 * * 如果有外接的SD卡,并且已挂载,则返回这个外置SD卡目录 * 否则:返回内置SD卡目录 * * @return */ public static String getExternalSdCardPath() { if (SDCardUtils.isMounted()) { File sdCardFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath()); return sdCardFile.getAbsolutePath(); } String path = null; File sdCardFile = null; ArrayList<String> devMountList = getDevMountList(); for (String devMount : devMountList) { File file = new File(devMount); if (file.isDirectory() && file.canWrite()) { path = file.getAbsolutePath(); String timeStamp = new SimpleDateFormat("ddMMyyyy_HHmmss").format(new Date()); File testWritable = new File(path, "test_" + timeStamp); if (testWritable.mkdirs()) { testWritable.delete(); } else { path = null; } } } if (path != null) { sdCardFile = new File(path); return sdCardFile.getAbsolutePath(); } return null; }

FileUtils文件:

package com.zqsy.order.tools;/**** 文件工具类* @author zhangda**/import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.util.ArrayList;import java.util.List;import android.text.TextUtils;/*** File Utils* <ul>* Read or write file* <li>{@link #readFile(String)} read file</li>* <li>{@link #readFileToList(String)} read file to string list</li>* <li>{@link #writeFile(String, String, boolean)} write file from String</li>* <li>{@link #writeFile(String, String)} write file from String</li>* <li>{@link #writeFile(String, List, boolean)} write file from String List</li>* <li>{@link #writeFile(String, List)} write file from String List</li>* <li>{@link #writeFile(String, InputStream)} write file</li>* <li>{@link #writeFile(String, InputStream, boolean)} write file</li>* <li>{@link #writeFile(File, InputStream)} write file</li>* <li>{@link #writeFile(File, InputStream, boolean)} write file</li>* </ul>* <ul>* Operate file* <li>{@link #moveFile(File, File)} or {@link #moveFile(String, String)}</li>* <li>{@link #copyFile(String, String)}</li>* <li>{@link #getFileExtension(String)}</li>* <li>{@link #getFileName(String)}</li>* <li>{@link #getFileNameWithoutExtension(String)}</li>* <li>{@link #getFileSize(String)}</li>* <li>{@link #deleteFile(String)}</li>* <li>{@link #isFileExist(String)}</li>* <li>{@link #isFolderExist(String)}</li>* <li>{@link #makeFolders(String)}</li>* <li>{@link #makeDirs(String)}</li>* </ul>* * @author <a href="" target="_blank">Trinea</a> -5-12*/public class FileUtils { public final static String FILE_EXTENSION_SEPARATOR = "."; private FileUtils() { throw new AssertionError(); } /** * read file * * @param filePath * @param charsetName The name of a supported {@link java.nio.charset.Charset </code>charset<code>} * @return if file not exist, return null, else return content of file * @throws RuntimeException if an error occurs while operator BufferedReader */ public static String readFile(String filePath) { String fileContent = ""; File file = new File(filePath); if (file == null || !file.isFile()) { return null; } BufferedReader reader = null; try { InputStreamReader is = new InputStreamReader(new FileInputStream(file)); reader = new BufferedReader(is); String line = null; int i = 0; while ((line = reader.readLine()) != null) { fileContent += line + " "; } reader.close(); return fileContent; } catch (IOException e) { e.printStackTrace(); } finally { if (reader != null) { try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } } return fileContent; } /** * write file * * @param filePath * @param content * @param append is append, if true, write to the end of file, else clear content of file and write into it * @return return false if content is empty, true otherwise * @throws RuntimeException if an error occurs while operator FileWriter */ public static boolean writeFile(String filePath, String content, boolean append) { if (StringUtils.isEmpty(content)) { return false; } FileWriter fileWriter = null; try { makeDirs(filePath); fileWriter = new FileWriter(filePath, append); fileWriter.write(content); fileWriter.close(); return true; } catch (IOException e) { throw new RuntimeException("IOException occurred. ", e); } finally { if (fileWriter != null) { try { fileWriter.close(); } catch (IOException e) { throw new RuntimeException("IOException occurred. ", e); } } } } /** * write file * * @param filePath * @param contentList * @param append is append, if true, write to the end of file, else clear content of file and write into it * @return return false if contentList is empty, true otherwise * @throws RuntimeException if an error occurs while operator FileWriter */ public static boolean writeFile(String filePath, List<String> contentList, boolean append) { if (contentList == null || contentList.size() == 0) { return false; } FileWriter fileWriter = null; try { makeDirs(filePath); fileWriter = new FileWriter(filePath, append); int i = 0; for (String line : contentList) { if (i++ > 0) { fileWriter.write("\r\n"); } fileWriter.write(line); } fileWriter.close(); return true; } catch (IOException e) { throw new RuntimeException("IOException occurred. ", e); } finally { if (fileWriter != null) { try { fileWriter.close(); } catch (IOException e) { throw new RuntimeException("IOException occurred. ", e); } } } } /** * write file, the string will be written to the begin of the file * * @param filePath * @param content * @return */ public static boolean writeFile(String filePath, String content) { return writeFile(filePath, content, false); } /** * write file, the string list will be written to the begin of the file * * @param filePath * @param contentList * @return */ public static boolean writeFile(String filePath, List<String> contentList) { return writeFile(filePath, contentList, false); } /** * write file, the bytes will be written to the begin of the file * * @param filePath * @param stream * @return * @see {@link #writeFile(String, InputStream, boolean)} */ public static boolean writeFile(String filePath, InputStream stream) { return writeFile(filePath, stream, false); } /** * write file * * @param file the file to be opened for writing. * @param stream the input stream * @param append if <code>true</code>, then bytes will be written to the end of the file rather than the beginning * @return return true * @throws RuntimeException if an error occurs while operator FileOutputStream */ public static boolean writeFile(String filePath, InputStream stream, boolean append) { return writeFile(filePath != null ? new File(filePath) : null, stream, append); } /** * write file, the bytes will be written to the begin of the file * * @param file * @param stream * @return * @see {@link #writeFile(File, InputStream, boolean)} */ public static boolean writeFile(File file, InputStream stream) { return writeFile(file, stream, false); } /** * write file * * @param file the file to be opened for writing. * @param stream the input stream * @param append if <code>true</code>, then bytes will be written to the end of the file rather than the beginning * @return return true * @throws RuntimeException if an error occurs while operator FileOutputStream */ public static boolean writeFile(File file, InputStream stream, boolean append) { OutputStream o = null; try { makeDirs(file.getAbsolutePath()); o = new FileOutputStream(file, append); byte data[] = new byte[1024]; int length = -1; while ((length = stream.read(data)) != -1) { o.write(data, 0, length); } o.flush(); return true; } catch (FileNotFoundException e) { throw new RuntimeException("FileNotFoundException occurred. ", e); } catch (IOException e) { throw new RuntimeException("IOException occurred. ", e); } finally { if (o != null) { try { o.close(); stream.close(); } catch (IOException e) { throw new RuntimeException("IOException occurred. ", e); } } } } /** * move file * * @param sourceFilePath * @param destFilePath */ public static void moveFile(String sourceFilePath, String destFilePath) { if (TextUtils.isEmpty(sourceFilePath) || TextUtils.isEmpty(destFilePath)) { throw new RuntimeException("Both sourceFilePath and destFilePath cannot be null."); } moveFile(new File(sourceFilePath), new File(destFilePath)); } /** * move file * * @param srcFile * @param destFile */ public static void moveFile(File srcFile, File destFile) { boolean rename = srcFile.renameTo(destFile); if (!rename) { copyFile(srcFile.getAbsolutePath(), destFile.getAbsolutePath()); deleteFile(srcFile.getAbsolutePath()); } } /** * copy file * * @param sourceFilePath * @param destFilePath * @return * @throws RuntimeException if an error occurs while operator FileOutputStream */ public static boolean copyFile(String sourceFilePath, String destFilePath) { InputStream inputStream = null; try { inputStream = new FileInputStream(sourceFilePath); } catch (FileNotFoundException e) { throw new RuntimeException("FileNotFoundException occurred. ", e); } return writeFile(destFilePath, inputStream); } /** * read file to string list, a element of list is a line * * @param filePath * @param charsetName The name of a supported {@link java.nio.charset.Charset </code>charset<code>} * @return if file not exist, return null, else return content of file * @throws RuntimeException if an error occurs while operator BufferedReader */ public static List<String> readFileToList(String filePath, String charsetName) { File file = new File(filePath); List<String> fileContent = new ArrayList<String>(); if (file == null || !file.isFile()) { return null; } BufferedReader reader = null; try { InputStreamReader is = new InputStreamReader(new FileInputStream(file), charsetName); reader = new BufferedReader(is); String line = null; while ((line = reader.readLine()) != null) { fileContent.add(line); } reader.close(); return fileContent; } catch (IOException e) { throw new RuntimeException("IOException occurred. ", e); } finally { if (reader != null) { try { reader.close(); } catch (IOException e) { throw new RuntimeException("IOException occurred. ", e); } } } } /** * get file name from path, not include suffix * * <pre> * getFileNameWithoutExtension(null) = null * getFileNameWithoutExtension("") = "" * getFileNameWithoutExtension(" ") = " " * getFileNameWithoutExtension("abc") = "abc" * getFileNameWithoutExtension("a.mp3") = "a" * getFileNameWithoutExtension("a.b.rmvb") = "a.b" * getFileNameWithoutExtension("c:\\") = "" * getFileNameWithoutExtension("c:\\a") = "a" * getFileNameWithoutExtension("c:\\a.b") = "a" * getFileNameWithoutExtension("c:a.txt\\a") = "a" * getFileNameWithoutExtension("/home/admin") = "admin" * getFileNameWithoutExtension("/home/admin/a.txt/b.mp3") = "b" * </pre> * * @param filePath * @return file name from path, not include suffix * @see */ public static String getFileNameWithoutExtension(String filePath) { if (StringUtils.isEmpty(filePath)) { return filePath; } int extenPosi = filePath.lastIndexOf(FILE_EXTENSION_SEPARATOR); int filePosi = filePath.lastIndexOf(File.separator); if (filePosi == -1) { return (extenPosi == -1 ? filePath : filePath.substring(0, extenPosi)); } if (extenPosi == -1) { return filePath.substring(filePosi + 1); } return (filePosi < extenPosi ? filePath.substring(filePosi + 1, extenPosi) : filePath.substring(filePosi + 1)); } /** * get file name from path, include suffix * * <pre> * getFileName(null) = null * getFileName("") = "" * getFileName(" ") = " " * getFileName("a.mp3") = "a.mp3" * getFileName("a.b.rmvb") = "a.b.rmvb" * getFileName("abc") = "abc" * getFileName("c:\\") = "" * getFileName("c:\\a") = "a" * getFileName("c:\\a.b") = "a.b" * getFileName("c:a.txt\\a") = "a" * getFileName("/home/admin") = "admin" * getFileName("/home/admin/a.txt/b.mp3") = "b.mp3" * </pre> * * @param filePath * @return file name from path, include suffix */ public static String getFileName(String filePath) { if (StringUtils.isEmpty(filePath)) { return filePath; } int filePosi = filePath.lastIndexOf(File.separator); return (filePosi == -1) ? filePath : filePath.substring(filePosi + 1); } /** * get folder name from path * * <pre> * getFolderName(null) = null * getFolderName("") = "" * getFolderName(" ") = "" * getFolderName("a.mp3") = "" * getFolderName("a.b.rmvb") = "" * getFolderName("abc") = "" * getFolderName("c:\\") = "c:" * getFolderName("c:\\a") = "c:" * getFolderName("c:\\a.b") = "c:" * getFolderName("c:a.txt\\a") = "c:a.txt" * getFolderName("c:a\\b\\c\\d.txt") = "c:a\\b\\c" * getFolderName("/home/admin") = "/home" * getFolderName("/home/admin/a.txt/b.mp3") = "/home/admin/a.txt" * </pre> * * @param filePath * @return */ public static String getFolderName(String filePath) { if (StringUtils.isEmpty(filePath)) { return filePath; } int filePosi = filePath.lastIndexOf(File.separator); return (filePosi == -1) ? "" : filePath.substring(0, filePosi); } /** * get suffix of file from path * * <pre> * getFileExtension(null) = "" * getFileExtension("") = "" * getFileExtension(" ") = " " * getFileExtension("a.mp3") = "mp3" * getFileExtension("a.b.rmvb") = "rmvb" * getFileExtension("abc") = "" * getFileExtension("c:\\") = "" * getFileExtension("c:\\a") = "" * getFileExtension("c:\\a.b") = "b" * getFileExtension("c:a.txt\\a") = "" * getFileExtension("/home/admin") = "" * getFileExtension("/home/admin/a.txt/b") = "" * getFileExtension("/home/admin/a.txt/b.mp3") = "mp3" * </pre> * * @param filePath * @return */ public static String getFileExtension(String filePath) { if (StringUtils.isBlank(filePath)) { return filePath; } int extenPosi = filePath.lastIndexOf(FILE_EXTENSION_SEPARATOR); int filePosi = filePath.lastIndexOf(File.separator); if (extenPosi == -1) { return ""; } return (filePosi >= extenPosi) ? "" : filePath.substring(extenPosi + 1); } /** * Creates the directory named by the trailing filename of this file, including the complete directory path required * to create this directory. <br/> * <br/> * <ul> * <strong>Attentions:</strong> * <li>makeDirs("C:\\Users\\Trinea") can only create users folder</li> * <li>makeFolder("C:\\Users\\Trinea\\") can create Trinea folder</li> * </ul> * * @param filePath * @return true if the necessary directories have been created or the target directory already exists, false one of * the directories can not be created. * <ul> * <li>if {@link FileUtils#getFolderName(String)} return null, return false</li> * <li>if target directory already exists, return true</li> * <li>return {@link java.io.File#makeFolder}</li> * </ul> */ public static boolean makeDirs(String filePath) { String folderName = getFolderName(filePath); if (StringUtils.isEmpty(folderName)) { return false; } File folder = new File(folderName); return (folder.exists() && folder.isDirectory()) ? true : folder.mkdirs(); } /** * @param filePath * @return * @see #makeDirs(String) */ public static boolean makeFolders(String filePath) { return makeDirs(filePath); } /** * Indicates if this file represents a file on the underlying file system. * * @param filePath * @return */ public static boolean isFileExist(String filePath) { if (StringUtils.isBlank(filePath)) { return false; } File file = new File(filePath); return (file.exists() && file.isFile()); } /** * Indicates if this file represents a directory on the underlying file system. * * @param directoryPath * @return */ public static boolean isFolderExist(String directoryPath) { if (StringUtils.isBlank(directoryPath)) { return false; } File dire = new File(directoryPath); return (dire.exists() && dire.isDirectory()); } /** * delete file or directory * <ul> * <li>if path is null or empty, return true</li> * <li>if path not exist, return true</li> * <li>if path exist, delete recursion. return true</li> * <ul> * * @param path * @return */ public static boolean deleteFile(String path) { if (StringUtils.isBlank(path)) { return true; } File file = new File(path); if (!file.exists()) { return true; } if (file.isFile()) { return file.delete(); } if (!file.isDirectory()) { return false; } for (File f : file.listFiles()) { if (f.isFile()) { f.delete(); } else if (f.isDirectory()) { deleteFile(f.getAbsolutePath()); } } return file.delete(); } /** * get file size * <ul> * <li>if path is null or empty, return -1</li> * <li>if path exist and it is a file, return file size, else return -1</li> * <ul> * * @param path * @return returns the length of this file in bytes. returns -1 if the file does not exist. */ public static long getFileSize(String path) { if (StringUtils.isBlank(path)) { return -1; } File file = new File(path); return (file.exists() && file.isFile() ? file.length() : -1); }}

StringUtils文件

package com.zqsy.order.tools;import java.io.UnsupportedEncodingException;import .URLEncoder;import java.util.regex.Matcher;import java.util.regex.Pattern;/*** String Utils* * @author <a href="" target="_blank">Trinea</a> -7-22*/public class StringUtils { private StringUtils() { throw new AssertionError(); } /** * is null or its length is 0 or it is made by space * * <pre> * isBlank(null) = true; * isBlank(&quot;&quot;) = true; * isBlank(&quot; &quot;) = true; * isBlank(&quot;a&quot;) = false; * isBlank(&quot;a &quot;) = false; * isBlank(&quot; a&quot;) = false; * isBlank(&quot;a b&quot;) = false; * </pre> * * @param str * @return if string is null or its size is 0 or it is made by space, return true, else return false. */ public static boolean isBlank(String str) { return (str == null || str.trim().length() == 0); } /** * is null or its length is 0 * * <pre> * isEmpty(null) = true; * isEmpty(&quot;&quot;) = true; * isEmpty(&quot; &quot;) = false; * </pre> * * @param str * @return if string is null or its size is 0, return true, else return false. */ public static boolean isEmpty(CharSequence str) { return (str == null || str.length() == 0); } /** * compare two string * * @param actual * @param expected * @return * @see ObjectUtils#isEquals(Object, Object) */ public static boolean isEquals(String actual, String expected) { return actual == expected || (actual == null ? expected == null : actual.equals(expected)); } /** * get length of CharSequence * * <pre> * length(null) = 0; * length(\"\") = 0; * length(\"abc\") = 3; * </pre> * * @param str * @return if str is null or empty, return 0, else return {@link CharSequence#length()}. */ public static int length(CharSequence str) { return str == null ? 0 : str.length(); } /** * null Object to empty string * * <pre> * nullStrToEmpty(null) = &quot;&quot;; * nullStrToEmpty(&quot;&quot;) = &quot;&quot;; * nullStrToEmpty(&quot;aa&quot;) = &quot;aa&quot;; * </pre> * * @param str * @return */ public static String nullStrToEmpty(Object str) { return (str == null ? "" : (str instanceof String ? (String)str : str.toString())); } /** * capitalize first letter * * <pre> * capitalizeFirstLetter(null) = null; * capitalizeFirstLetter("") = ""; * capitalizeFirstLetter("2ab") = "2ab" * capitalizeFirstLetter("a") = "A" * capitalizeFirstLetter("ab") = "Ab" * capitalizeFirstLetter("Abc") = "Abc" * </pre> * * @param str * @return */ public static String capitalizeFirstLetter(String str) { if (isEmpty(str)) { return str; } char c = str.charAt(0); return (!Character.isLetter(c) || Character.isUpperCase(c)) ? str : new StringBuilder(str.length()) .append(Character.toUpperCase(c)).append(str.substring(1)).toString(); } /** * encoded in utf-8 * * <pre> * utf8Encode(null) = null * utf8Encode("") = ""; * utf8Encode("aa") = "aa"; * utf8Encode("啊啊啊啊") = "%E5%95%8A%E5%95%8A%E5%95%8A%E5%95%8A"; * </pre> * * @param str * @return * @throws UnsupportedEncodingException if an error occurs */ public static String utf8Encode(String str) { if (!isEmpty(str) && str.getBytes().length != str.length()) { try { return URLEncoder.encode(str, "UTF-8"); } catch (UnsupportedEncodingException e) { throw new RuntimeException("UnsupportedEncodingException occurred. ", e); } } return str; } /** * encoded in utf-8, if exception, return defultReturn * * @param str * @param defultReturn * @return */ public static String utf8Encode(String str, String defultReturn) { if (!isEmpty(str) && str.getBytes().length != str.length()) { try { return URLEncoder.encode(str, "UTF-8"); } catch (UnsupportedEncodingException e) { return defultReturn; } } return str; } /** * get innerHtml from href * * <pre> * getHrefInnerHtml(null) = "" * getHrefInnerHtml("") = "" * getHrefInnerHtml("mp3") = "mp3"; * getHrefInnerHtml("&lt;a innerHtml&lt;/a&gt;") = "&lt;a innerHtml&lt;/a&gt;"; * getHrefInnerHtml("&lt;a&gt;innerHtml&lt;/a&gt;") = "innerHtml"; * getHrefInnerHtml("&lt;a&lt;a&gt;innerHtml&lt;/a&gt;") = "innerHtml"; * getHrefInnerHtml("&lt;a href=""&gt;innerHtml&lt;/a&gt;") = "innerHtml"; * getHrefInnerHtml("&lt;a href="" title="baidu"&gt;innerHtml&lt;/a&gt;") = "innerHtml"; * getHrefInnerHtml(" &lt;a&gt;innerHtml&lt;/a&gt; ") = "innerHtml"; * getHrefInnerHtml("&lt;a&gt;innerHtml&lt;/a&gt;&lt;/a&gt;") = "innerHtml"; * getHrefInnerHtml("jack&lt;a&gt;innerHtml&lt;/a&gt;&lt;/a&gt;") = "innerHtml"; * getHrefInnerHtml("&lt;a&gt;innerHtml1&lt;/a&gt;&lt;a&gt;innerHtml2&lt;/a&gt;") = "innerHtml2"; * </pre> * * @param href * @return <ul> * <li>if href is null, return ""</li> * <li>if not match regx, return source</li> * <li>return the last string that match regx</li> * </ul> */ public static String getHrefInnerHtml(String href) { if (isEmpty(href)) { return ""; } String hrefReg = ".*<[\\s]*a[\\s]*.*>(.+?)<[\\s]*/a[\\s]*>.*"; Pattern hrefPattern = pile(hrefReg, Pattern.CASE_INSENSITIVE); Matcher hrefMatcher = hrefPattern.matcher(href); if (hrefMatcher.matches()) { return hrefMatcher.group(1); } return href; }/** * process special char in html * * <pre> * htmlEscapeCharsToString(null) = null; * htmlEscapeCharsToString("") = ""; * htmlEscapeCharsToString("mp3") = "mp3"; * htmlEscapeCharsToString("mp3&lt;") = "mp3<"; * htmlEscapeCharsToString("mp3&gt;") = "mp3\>"; * htmlEscapeCharsToString("mp3&amp;mp4") = "mp3&mp4"; * htmlEscapeCharsToString("mp3&quot;mp4") = "mp3\"mp4"; * htmlEscapeCharsToString("mp3&lt;&gt;&amp;&quot;mp4") = "mp3\<\>&\"mp4"; * </pre> * * @param source * @return */ public static String htmlEscapeCharsToString(String source) { return StringUtils.isEmpty(source) ? source : source.replaceAll("&lt;", "<").replaceAll("&gt;", ">") .replaceAll("&amp;", "&").replaceAll("&quot;", "\""); } /** * transform half width char to full width char * * <pre> * fullWidthToHalfWidth(null) = null; * fullWidthToHalfWidth("") = ""; * fullWidthToHalfWidth(new String(new char[] {12288})) = " "; * fullWidthToHalfWidth("!"#$%&) = "!\"#$%&"; * </pre> * * @param s * @return */ public static String fullWidthToHalfWidth(String s) { if (isEmpty(s)) { return s; } char[] source = s.toCharArray(); for (int i = 0; i < source.length; i++) { if (source[i] == 12288) { source[i] = ' '; // } else if (source[i] == 12290) {// source[i] = '.'; } else if (source[i] >= 65281 && source[i] <= 65374) { source[i] = (char)(source[i] - 65248); } else { source[i] = source[i]; } } return new String(source); } /** * transform full width char to half width char * * <pre> * halfWidthToFullWidth(null) = null; * halfWidthToFullWidth("") = ""; * halfWidthToFullWidth(" ") = new String(new char[] {12288}); * halfWidthToFullWidth("!\"#$%&) = "!"#$%&"; * </pre> * * @param s * @return */ public static String halfWidthToFullWidth(String s) { if (isEmpty(s)) { return s; } char[] source = s.toCharArray(); for (int i = 0; i < source.length; i++) { if (source[i] == ' ') { source[i] = (char)12288; // } else if (source[i] == '.') {// source[i] = (char)12290; } else if (source[i] >= 33 && source[i] <= 126) { source[i] = (char)(source[i] + 65248); } else { source[i] = source[i]; } } return new String(source); }}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。