【问题标题】:Extremely weird NullPointerException when reading in a File Android读取文件 Android 时非常奇怪的 NullPointerException
【发布时间】:2014-03-19 14:02:14
【问题描述】:

代码如下:

Thread clientThread = new Thread() {
            @Override
            public void run() {
                try {
                    client = new Client();
                    quest = client.readFile();
                    Log.v("Client string", quest);

                    //File file = new File(myContext.getFilesDir(), "questionnaire.xml");
                    //BufferedWriter bw = new BufferedWriter(new FileWriter(file));
                    //bw.write(quest);
                    File tempFile = File.createTempFile("questionnaire", ".xml");
                    FileOutputStream fout = new FileOutputStream(tempFile);
                    PrintStream out = new PrintStream(fout);
                    out.println(quest);//InputStream stream = new ByteArrayInputStream(quest.getBytes("UTF-8"));
                    //getResources().op
                    try {
                    Serializer serializer = new Persister();
                    responseToQuestionnaire = serializer.read(ResponseToQuestionnaire.class, tempFile);
                    }
                    catch(Exception e) {}
                    Log.v("Let's seeeeee",responseToQuestionnaire.getQuestionnaireTemplate().toString());

                } catch (Exception e1) {
                    e1.printStackTrace();
                }
//              try {
//                  OutputStreamWriter outputStreamWriter = new OutputStreamWriter(
//                          openFileOutput(currentQuestionnaire.getName(),
//                                  Context.MODE_PRIVATE));
//                  outputStreamWriter.write(client.readFile());
//                  outputStreamWriter.close();
//              } catch (IOException e) {
//                  Log.e("Exception", "File write failed: " + e.toString());
//              }
            }
        };
        clientThread.start();

即使 quest 是在日志中完美打印的全长字符串,代码也会引发空指针异常。我尝试了多种保存文件的方法,但 SimpleXML 不序列化字符串......只有 XML 文件。

【问题讨论】:

  • 请添加logcat
  • BasicQuestionActivity.java 中的第 159 行
  • Log.v("Let's seeeeee",responseToQuestionnaire.getQuestionnaireTemplate().toString());
  • 您是否遇到了一些异常,这就是为什么您的变量 responseToQuestionnaire 为空,所以在该行之前放置 e.printStackTrace();这样你就会得到正确的错误。

标签: java android file-io simple-framework


【解决方案1】:

缓冲流不一定会写入数据,直到必须这样做。在调用 read() 方法之前尝试关闭输出流。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-17
    • 2014-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多