The file storage provided by mPaaS provides file encryption capability based on Android native File.
Note: Because the file encryption uses the encryption function provided by Mobile Security Guard, you must ensure that the encryption images in Mobile Security Guard have been correctly generated.
File types
- ZFile: This type of files are stored in
data/data/package_name/files. - ZExternalFile: This type of files are stored in
sdcard/Android/data/package_name/files. - ZFileInputStream/ZFileOutputStream: File storage input/output stream, the files will not be encrypted if you use this stream.
- ZSecurityFileInputStream/ZSecurityFileOutputStream: Secure file storage input/output stream, the files will be encrypted if you use this stream.
Examples
Convert files to text
/*** Convert files to text* @param file: File* @return Text*/public String file2String(File file) {InputStreamReader reader = null;StringWriter writer = new StringWriter();try {// Use decryption input stream ZSecurityFileInputStream// If you don’t use encryption/decryption function, then use ZFileInputStreamreader = new InputStreamReader(new ZSecurityFileInputStream(file, this));//Write the input stream into the output streamchar[] buffer = new char[DEFAULT_BUFFER_SIZE];int n = 0;while (-1 != (n = reader.read(buffer))) {writer.write(buffer, 0, n);}} catch (Exception e) {e.printStackTrace();return null;} finally {if (reader != null)try {reader.close();} catch (IOException e) {e.printStackTrace();}}//Return the coversion resultif (writer != null) {return writer.toString();} else {return null;}}
Convert text to files
/*** Convert text to files* @param res: Text* @param file: File* @return true means successful while false means failed*/public boolean string2File(String res, File file) {boolean flag = true;BufferedReader bufferedReader = null;BufferedWriter bufferedWriter;try {bufferedReader = new BufferedReader(new StringReader(res));// Use decryption output stream ZSecurityFileOutputStream// If you don’t use encryption/decryption function, then use ZFileOutputStreambufferedWriter = new BufferedWriter(new OutputStreamWriter(new ZSecurityFileOutputStream(file, this)));//Character bufferschar buf[] = new char[DEFAULT_BUFFER_SIZE];int len;while ((len = bufferedReader.read(buf)) != -1) {bufferedWriter.write(buf, 0, len);}bufferedWriter.flush();bufferedReader.close();bufferedWriter.close();} catch (Exception e) {e.printStackTrace();flag = false;return flag;} finally {if (bufferedReader != null) {try {bufferedReader.close();} catch (IOException e) {e.printStackTrace();}}}return flag;}
Insert files
/*** Insert files** @param file: File*/private void insertFile(BaseFile file) {if (null == file) {return;}StringBuilder sb = new StringBuilder();String content = sb.append(file.getName()).append(' ').append(SIMPLE_DATE_FORMAT.format(new Date(System.currentTimeMillis()))).toString();string2File(content, file);try {if (!file.exists()) {file.createNewFile();}mData.add(file);} catch (Exception e) {e.printStackTrace();}}
Delete files
/*** Delete files** @param file: File*/private void deleteFile(BaseFile file) {try {file.delete();mData.remove(file);} catch (Exception e) {e.printStackTrace();}}