Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java openFileOutput抛出NullPointerException(我不知道为什么)_Java_Android_File Writing - Fatal编程技术网

Java openFileOutput抛出NullPointerException(我不知道为什么)

Java openFileOutput抛出NullPointerException(我不知道为什么),java,android,file-writing,Java,Android,File Writing,因此,我正在移植我的IRC Bot以在我的选项卡上运行,该选项卡使用4.4.2(API 19) 现在给我最后一天带来问题的功能是Quote数据库,它通过用户添加Quote并将其存储到文件中—可以检索和显示它们。现在,我已经在拼命创建一个文件了。 方法如下: public void createFile(String filenick){ try { FileOutputStream os = MainActivity.context.openFil

因此,我正在移植我的IRC Bot以在我的选项卡上运行,该选项卡使用4.4.2(API 19)

现在给我最后一天带来问题的功能是Quote数据库,它通过用户添加Quote并将其存储到文件中—可以检索和显示它们。现在,我已经在拼命创建一个文件了。 方法如下:

    public void createFile(String filenick){

        try {
           FileOutputStream os = MainActivity.context.openFileOutput(filenick, 0);
           os.close();
        } catch (FileNotFoundException e) {
            System.out.println("createFile "+filenick+" happened");
        } catch (IOException e) {
            System.out.println("IO error " + filenick + " happened");
        }


    }
上下文来自

public class MainActivity extends Activity {

    public static Context context=new MainActivity().getApplication();
它编译得很好,Android Studio没有给我任何类型的错误。 机器人可以使用除此之外的所有功能

 java.lang.NullPointerException
    at com.coilworks.dreaddroid.QDBClass.createFile(QDBClass.java:175)
    at com.coilworks.dreaddroid.QDBClass.adder(QDBClass.java:57)
对于Context:QDBClass.java:175是以FileOutputStream开头的行

57是调用createFile的位置

到目前为止,我已经尝试了android文档中包含的Outputstreams和Writer的每一个可能的迭代


也许我只是找错了词

您不应该直接实例化
活动。这是框架的工作

publicstaticcontext=newmainActivity().getApplication()


这条线可能是你看到的许多问题的根源<代码>上下文
在这种情况下将始终为

首先,切勿自己创建活动实例(例如,
新建活动()

第二,除非特别说明,否则在创建活动之前,不要调用活动实例上的方法(即,至少通过
activity
本身的
onCreate()
实现)


考虑到上面的代码,您的
上下文
将始终为

我现在确实觉得自己很愚蠢。谢谢,现在我正在寻找如何以适当的方式获得上下文。