在没有MODE_WORLD_READ / WRITE的情况下写入文件

时间:2012-10-21 05:38:01

标签: android android-emulator

好的,我遇到过很多关于创建和编写/读取文件的教程。我想要的Android应用程序是创建一个小文本文件,它将读取和写入一些设置,以便保存我的用户信息。问题是我遇到的每个教程都使用SD卡(允许用户和任何其他应用程序阅读)或使用MODE_WORLD_READABLE使任何应用程序读取它。

我想知道如何创建和读/写我的文件,但私人或至少将它保存在手机的内部存储器上。

2 个答案:

答案 0 :(得分:3)

这是一个简单的例子。要阅读偏好,请执行以下操作:

SharedPreferences preferences = getSharedPreferences("YourAppName", MODE_PRIVATE);
String thisString = preferences.getString("KeyForThisString", "default");

你可以getInt,getLong等。

要存储首选项,请使用以下行:

SharedPreferences preferences = getSharedPreferences("YourAppName",MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("KeyForThisString", thisString);
editor.commit();

和以前一样,你可以putInt,putLong等。

此API的可用方法如下:http://developer.android.com/reference/android/content/SharedPreferences.html

答案 1 :(得分:1)

dont know how to use it much and from what im seeing at least, its not much of a difference unless im wrong.

我仍然建议使用SharedPreferences技术。这显然很容易,节省了很多时间。

您可以使用它来保存任何原始数据:booleans, floats, ints, longs, and strings。 例如,每当用户调用对应用程序的任何更改时,您都可以这样做,因为它是高性能技术。通过这种方式即使在崩溃时,所有已编辑的信息也将被存储。

假设您有一个活动。

使用此方法,其中data是您要保存为文件的字符串。

private void saveInfo(String data){
   String key = "myKey"; 
   SharedPreferences.Editor editor = mPrefs.edit();
   editor.putString(key , data);
   editor.commit();
}

现在,当您再次启动应用程序onCreate方法时,您可以重新加载信息:

  private void loadInfo(){
     String key = "myKey"; 
     SharedPreferences mPrefs = context.getSharedPreferences(LauncherUI.PREFS_NAME, 0);
     String yourData = mPrefs.getString(key, ""); // "" means if no data found, replace it with empty string
}

以下是指向存储数据的5种类型的链接:Storage Options