我们在做各种程序,App稍微复杂点,都难免要进行读写文件。windows还好,虽然也有各种权限和安全机制,但就读写文件来说,还好,管理员权限的话,几乎可以读写任何文件了。。。废话少说,还是来说正题。
首先,我在做一款app的时候,就需要进行读写文件,在没有进行系统测试整理之前,总是一头雾水。 主要有两点:
1 各种getXXX函数返回的路径到底是啥?
2 各种存储位置都需要怎么样才能有读写权限?
关于问题1,已经有大神总结的很好了
https://blog.csdn.net/u010937230/article/details/73303034/
不过对上述博文提出内部存储很珍贵,尽量使用外部存储,我现在持反对意见,本人是windows开发,由于工作需要也得做安卓开发,所以对系统级的东西了解不多,但在我看来内部存储和外部存储,都是处于同一个分区的,只是路径不一样。 根据是我计算内部存储和外部存储的总空间和剩余空间,一模一样。(小米8)
当然可能早期版本的安卓可能确实不一样吧,过老的手机,至少我是不考虑的。
现在通过评测 来说明问题2,我仅以评测结果来说明问题,如果不小心有Android linux大神路过,请批评指正。
既然是评测就尽量全面点,但实际上很多路径,普通App是不会涉及到的
我们先来定义两个简单的函数,用来验证读写是否成功:
private boolean readFile(String fileDir, String fileName)
{
String strFullPath = fileDir + "/" + fileName;
StringBuffer strBuffer = new StringBuffer();
byte[] buffer = new byte[1024];
try {
FileInputStream fi = new FileInputStream(strFullPath);
while (true)
{
int len = fi.read(buffer);
if(len>0) {
strBuffer.append(new String(buffer, 0, len));
}
else
{
break;
}
}
}
catch (IOException e)
{
Log.i(logTag, e.toString());
return false;
}
Log.i(logTag, "读出文件成