文件存儲(chǔ)
更新時(shí)間:
mPaaS 提供的文件存儲(chǔ)基于 Android 原生 File
,提供了加密能力。
說(shuō)明
由于文件加密采用無(wú)線(xiàn)保鏢提供的加密功能,請(qǐng)確保無(wú)線(xiàn)保鏢加密圖片已正確生成。
文件存儲(chǔ)類(lèi)型
ZFile:該文件類(lèi)型存儲(chǔ)在
data/data/package_name/files
下。ZExternalFile:該文件類(lèi)型存儲(chǔ)在
sdcard/Android/data/package_name/files
下。ZFileInputStream/ZFileOutputStream:文件存儲(chǔ)輸入輸出流,使用該流則不進(jìn)行加解密。
ZSecurityFileInputStream/ZSecurityFileOutputStream:文件存儲(chǔ)安全輸入輸出流,使用該流則會(huì)進(jìn)行加解密。
使用示例
文件轉(zhuǎn)文本
/**
* 文件轉(zhuǎn)文本
* @param file 文件
* @return 文本
*/
public String file2String(File file) {
InputStreamReader reader = null;
StringWriter writer = new StringWriter();
try {
// 使用解密輸入流 ZSecurityFileInputStream
// 如果不使用加解密功能,則請(qǐng)使用 ZFileInputStream
reader = new InputStreamReader(new ZSecurityFileInputStream(file, this));
//將輸入流寫(xiě)入輸出流
char[] 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();
}
}
//返回轉(zhuǎn)換結(jié)果
if (writer != null) {
return writer.toString();
} else {
return null;
}
}
文本轉(zhuǎn)文件
/**
* 文本轉(zhuǎn)文件
* @param res 文本
* @param file 文件
* @return true 表示成功,反之失敗
*/
public boolean string2File(String res, File file) {
boolean flag = true;
BufferedReader bufferedReader = null;
BufferedWriter bufferedWriter;
try {
bufferedReader = new BufferedReader(new StringReader(res));
// 使用加密輸出流 ZSecurityFileOutputStream
// 如果不使用加解密功能,則請(qǐng)使用 ZFileOutputStream
bufferedWriter = new BufferedWriter(new OutputStreamWriter(new ZSecurityFileOutputStream(file, this)));
//字符緩沖區(qū)
char 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;
}
插入文件
/**
* 插入文件
*
* @param 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();
}
}
刪除文件
/**
* 刪除文件
*
* @param file 文件
*/
private void deleteFile(BaseFile file) {
try {
file.delete();
mData.remove(file);
} catch (Exception e) {
e.printStackTrace();
}
}
文檔內(nèi)容是否對(duì)您有幫助?