似乎没有任何需要为文件io设置的Android清单权限。
public class Device extends Activity {
private static final Configuration config = new Configuration();
...
private boolean applyMenuChoice(MenuItem item) {
switch (item.getItemId()) {
...
case R.id.menuSave:
...
configuration.modify(name, to, from, user);
configuration.write();
...
public class Configuration extends Activity {
private final static String CONFIG = "config.txt";
private static StringBuilder config = new StringBuilder();
...
public void write() {
try {
FileOutputStream fos = openFileOutput(CONFIG, Context.MODE_PRIVATE);
fos.write(config.toString().getBytes());
...
答案 0 :(得分:1)
使用正确的方法替换活动的非法实例化解决了此问题。非常感谢(再次)Falmarri。
答案 1 :(得分:0)
你想把文件写到哪里?如果它在设备的SD卡上,则需要在android-manifest中设置WRITE_EXTERNAL_STORAGE权限。您可能还需要设置路径而不是仅使用文件名。
答案 2 :(得分:0)
当此指针不正确时,在此方案中抛出异常。您可能使用其ctor像常规对象创建活动,而不是使用intent的start活动。在这种情况下,不要调用openFileOutput或this.openFileOutput,但是你应该将你所在的上下文作为参数发送到write()函数,并使用这个上下文,即:
write(Context context)
{
context.openFileOutput(...)
...