【发布时间】:2015-06-18 09:26:08
【问题描述】:
我在文件中写入 JsonArray 时遇到了一些问题。当我使用时
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(destFile));
out.writeObject(jarr);
报错
java.io.NotSerializableException: com.google.gson.JsonArray
at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1344)
at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1651)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1497)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1461)
at com.example.calljavascript.MainActivity.copyFile(MainActivity.java:281)
at com.example.calljavascript.MainActivity.onResultRecived(MainActivity.java:191)
at com.example.calljavascript.JavaScriptInterface.receiveValueFromJs(JavaScriptInterface.java:32)
at com.android.org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method)
at com.android.org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:53)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.os.HandlerThread.run(HandlerThread.java:61)
我也试过了
FileWriter file = new FileWriter(destFile);
file.write(jarr.toString());
通过FileWriter,我们可以直接写jsonobject。因为我几乎是从源头得到的。我们可以在toString()之后写jsonarray,我不能用toString()写Jsonarray。因为在 toString() 之后,我不能再使用那个 json 文件,有什么问题?看不懂。
在将 jsonarray 转换为 bytearray 后,我也通过 ByteArrayInputStream 尝试过,但读取该 json 文件没有成功。
请告诉我一个写JsonArray的有效方法,这里不用toString()
【问题讨论】:
-
toString之后,不能再使用文件了吗?
-
@Olayinka,我有一些读取 json 文件的 NDK 工具,从那里抛出错误。我只有 .so 文件(c/c++ 类的编译)而不是 c 和 c++ 类,所以我不能在那里出错。
-
Andrioid JSON API 对我来说总是很有效。
标签: android json file filewriter