我想在内部存储上写json文件,但我无法处理它。这是我的代码:
String answers_json = data.getExtras().getString("answers");
Log.d("****", "****************** WE HAVE ANSWERS ******************");
Log.v("ANSWERS JSON", answers_json);
Log.d("****", "*****************************************************");
try {
File file = new File (getFilesDir(),"answers.json");
FileWriter fileWriter = new FileWriter(file);
BufferedWriter writer = new BufferedWriter(fileWriter);
writer.write("answers");
writer.flush();
writer.close()
我尝试了很多变种,但它总是以“打开失败”错误结束,或者一切都很好,我的手机上找不到文件(这意味着什么也没发生)。我身上有什么问题?
答案 0 :(得分:1)
我明白了。这对我有用......
try {
String FILENAME = "answers.json";
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_APPEND);
assert answers_json != null;
fos.write(answers_json.getBytes());
fos.close();
}
catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
致以问候并感谢您的帮助。
答案 1 :(得分:-1)
这可能会对您有所帮助:
private void downloadAndStoreJson(String url,String tag){
JSONParser jParser = new JSONParser();
JSONObject json = jParser.getJSONFromUrl(url);
String jsonString = json.toString();
byte[] jsonArray = jsonString.getBytes();
File fileToSaveJson = new File("/sdcard/appData/LocalJson/",tag);
BufferedOutputStream bos;
try {
bos = new BufferedOutputStream(new FileOutputStream(fileToSaveJson));
bos.write(jsonArray);
bos.flush();
bos.close();
} catch (FileNotFoundException e4) {
// TODO Auto-generated catch block
e4.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally {
jsonArray=null;
jParser=null;
System.gc();
}}