三种类型的文件存储:SharedPreferences类、Android内部文件操作、SDCard文件存储。
一、SharedPreferences类
只用于保存少量数据,以 (key,value) 格式保存在XML文件中,开发者不用关心XML文件的存储格式和路径。Key用于存取数据,value是数据的实际内容。
使用方法:
(1)创建SharedPreferences对象
SharedPreferences setting = getSharedPreferences(“settings”, MODE_PRIVATE);
参数1:string类型,用于指定保存数据的文件名,settings.xml
参数2:int类型,用于指定XML文件的操作模式,MODE_PRIVATE、MODE_WORLD_READABLE、MODE_WORLD_WRITEABLE)
(2)写入SharedPreferences对象内容
调用SharedPreferences对象的edit方法的putXXX来变更文件内容,调用commit()方法才真正写入文件。提供五种数据类型。
setting.edit().putString(“email”, email)
putString(“password”, password)
putBoolean(“checked”, true)
commit();
或者
Editor edit = setting.edit();
edit. putString(“email”, email);
edit. putString(“password”, password);
edit. putString(“checked”, true);
edit.commit();
(3)读取SharedPreferences对象数据
使用SharedPreferences对象的getXXX方法来变更文件内容。
String email = setting.getString(“emal”, “”);
String password = setting.getString(“password”, “”);
String checked = setting.getBoolean(“checked”, false);
二、Android内部文件操作
内部文件存储存在手机的内部存储器上,适合存储容量不大且单个应用独享的数据信息。存储路径对开发者是透明的。核心是FileOutputStream及FileInputStream。
(1)写入文件
① FileOutputStream out = openFileOutput(String filename, int mode);
参数1:string类型,用于指定写入的文件名。
参数2:int类型,用于指定文件的操作模式,四种模式。
② out.write(byte[]b);
写入文件的数据必须是byte类型,所以一般会使用getBytes()方法把字符串转换成byte数组。
实例:
FileOutputStream out = null;
out = openFileOutput(“settings.txt”, MODE_PRIVATE);
String filecontent = “Hello World”;
out.write(filecontent.getBytes());
out.flush();
out.close();
(2)读取文件
① FileInputStream in = openFileInput(String filename);
获得某个文件的文件流,定义在android.content.Context类中。String类型读取的文件名。除创建输出流和输入流的代码外,与PC上的文件I/O代码一致。
② int length = in.read(byte[]);
实例:
FileInputStream in = openFileInput(“settings.txt”);
byte[] buf = new byte[in.available()];
while(in.read(buf)!=-1) {}
String text = new String(buf);
三、文件的默认位置
①在android studio点击如图所示:
文件路径:
SharedPreferences类:/data/data/你创建的项目/ shared_prefs
Android内部文件操作: /data/data/你创建的项目/files
有任何问题欢迎大家在下方评论区讨论!!!