File files =Environment.getExternalStorageDirectory();
File[] pp=files.listFiles();
for(File file:pp)
{
Log.d("","文件名:"+file.getName()+"文件路径:"+file.getAbsolutePath());
}
这一段主要说明一下Environment.getExternalStorageDirectory() 的作用
获取手机内部路径的第一层对象
并且打印所有在第一层目录下的所有文件以及对应的绝对路径
Android中的IO和JavaSE的IO没有本质的区别
try
{
File f=new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+fname);
Log.d("",Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+fname);
int length=(int)f.length();
byte[] buff=new byte[length];
FileInputStream fin=new FileInputStream(f);
fin.read(buff);
fin.close();
result=new String(buff,"UTF-8");
result=result.replaceAll("\\r\\n","\n");
}
catch(Exception e)
{
Toast.makeText(this, "对不起,没有找到指定文件!", Toast.LENGTH_SHORT).show();
}
1.得到文件对象
2.获取文件对象的长度
3.创建对应大小的byte数组
4.打开文件输入流
5.读byte数组
6.关闭输入流
7.将字符串result改编码 UTF-8 否则出乱码
8.在Linux下的换行为\r\n 而windows得改成\n
之前的持久化数据通过IO存储在文件中不过有时候不需要那么麻烦
下面请出
Perferences
一种轻量级别的数据储存机制
将简单的基本数据类型 boolean,int,float,long以及String
以键值对的形式储存在应用程序的私有perferences目录下
//获取SharedPreferences
SharedPreferences sp=this.getSharedPreferences("actm", //perferences的名称
Context.MODE_PRIVATE //开启读写模式);
int aa=sp.getInt(
"a", // 键都是String类型
1
);
SharedPreferences.Editor editor2 =sp.edit();
editor2.putInt("a",aa*=2);
editor2.commit();
setContentView(R.layout.main);
TextView tv2=(TextView)findViewById(R.id.TextView01);
tv2.setText("现在a的值为 "+aa);