Android: 从其他 class 写入文件 nullpointerexception

Android: Write file from other class nullpointerexception

我正在尝试从另一个 class 写入一个文件,但我得到一个我无法解决的空指针异常。下面的代码可以在mainactivity中使用没有任何问题,但是当我尝试在我的第二个class中使用它时,我得到了错误。

 public void writeFile() {

    String text = "Hello world";
    String fileName = "TestFile.txt";


    FileOutputStream fileOutputStream;
    MainActivity maObj = new MainActivity();


    try {

        fileOutputStream = maObj.openFileOutput(fileName, maobj.MODE_PRIVATE);
        fileOutputStream.write(text.getBytes());
        fileOutputStream.close();


    } catch (IOException e) {

        e.printStackTrace();


    }
}

您需要传递 activity 上下文而不是在 write 方法中创建新的 activity 实例 as

public void writeFile(Context context) { 

并删除 MainActivity maObj = new MainActivity();,因为无法在 Android 中以这种方式实例化活动。此外,更改

fileOutputStream = maObj.openFileOutput(fileName, maobj.MODE_PRIVATE);

    fileOutputStream = context.openFileOutput(fileName, Context.MODE_PRIVATE);

完成后,您的方法应如下所示:

public void writeFile( Context context ) {

    String text = "Hello world";
    String fileName = "TestFile.txt";

    FileOutputStream fileOutputStream;

    try {

        fileOutputStream = context.openFileOutput(fileName, Context.MODE_PRIVATE);
        fileOutputStream.write(text.getBytes());
        fileOutputStream.close();

    } catch (IOException e) {
        e.printStackTrace();
    }
}

现在将您的方法称为

writeFile(MainActivity.this);

来自 MainActivity class.

您不能像在此处那样使用 new 构造函数创建 Activity

MainActivity maObj = new MainActivity();

改成这个

fileOutputStream = this.openFileOutput(文件名, maobj.MODE_PRIVATE);