【发布时间】: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