Вы не должны писать файлы ресурсов. Он существует для хранения данных, которые вы поставили перед компиляцией. Если вы хотите сохранить информацию в файле, во время выполнения вы можете сделать что-то вроде этого:
public static void writeToFile(String fileName, String encoding, String text) {
Writer writer = null;
try {
writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName), encoding));
writer.write(text);
} catch (IOException ex) {
Log.e(TAG, "", ex);
} finally {
try {
writer.close();
} catch (Exception ex) {
}
}
}
Чтобы найти путь к SD карте вы можете использовать этот метод:
Environment.getExternalStorageState()
Таким образом, вы можете использовать этот метод как это:
writeToFile(Environment.getExternalStorageState() + "/" + "my_text_file.txt", "UTF-8", "my_text");
не забыли установить разрешения
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
UPD: Вы не должны использовать SD-карту, чтобы сохранить некоторую защищенную информацию! Дополнительная информация here.
Чтобы написать данные, которые будут доступны только для вашего приложения, используйте этот код:
public static void writeToInternalFile(String fileName, String text) {
FileOutputStream fos = openFileOutput(fileName, Context.MODE_PRIVATE);
fos.write(text.getBytes());
fos.close();
}
Чтобы прочитать из этого файла:
public static String readFromInternalFile(String fileName) {
FileInputStream fis = openFileInput(, Context.MODE_PRIVATE);
StringBuilder sb = new StringBuilder();
int ch;
while((ch = fis.read()) != -1){
sb .append((char)ch);
}
return sb.toString();
}
Вы не можете писать в файлы ресурсов. .. – gunar
не возможно? – user3233500
Возможный дубликат [Android и ObjectOutputStream для файла ресурсов] (http://stackoverflow.com/questions/8747713/android-and-objectoutputstream-to-resource-file) – kabuko