我有一个类compositionJSON.该类有一个方法调用makeJSONObject,它创建一个JSON-Object并将东西放入其中.这是该类的代码.
public class CompositionJso extends JSONObject { public JSONObject makeJSONObject (String title, String desc, ArrayListimgPath, ArrayList imgView) { JSONObject obj = new JSONObject() ; try { obj.put("title", title); obj.put("desc", desc); obj.put("imgPath", imgPath); obj.put("imgViewPath", imgView); } catch (JSONException e) { e.printStackTrace(); } return obj; }
现在我创建这个类的一个实例,并在另一个类中调用该方法.之后我想将JSONObject写入文件并将其保存在设备上的SD卡上.这是代码:
saveCompo.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { setName(); createJSONFolder(); CompositionJso obj = new CompositionJso(); obj.makeJSONObject(compoTitle, compoDesc, imgPaths, imageViewPaths); MyCompositionsListActivity.buildList(); try { Writer output = null; File file = new File("storage/sdcard/MyIdea/MyCompositions/" + compoTitle + ".json"); output = new BufferedWriter(new FileWriter(file)); output.write(obj.toString()); output.close(); Toast.makeText(getApplicationContext(), "Composition saved", Toast.LENGTH_LONG).show(); } catch (Exception e) { Toast.makeText(getBaseContext(), e.getMessage(), Toast.LENGTH_LONG).show(); } finish(); } });
该文件已成功保存但如果我打开它,则内部没有任何内容.代码有什么问题?
makeJSONObject
正在回归 JSONObject
你的代码应该是
saveCompo.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { setName(); createJSONFolder(); CompositionJso obj = new CompositionJso(); JSONObject jsonObject = obj.makeJSONObject(compoTitle, compoDesc, imgPaths, imageViewPaths); MyCompositionsListActivity.buildList(); try { Writer output = null; File file = new File("storage/sdcard/MyIdea/MyCompositions/" + compoTitle + ".json"); output = new BufferedWriter(new FileWriter(file)); output.write(jsonObject.toString()); output.close(); Toast.makeText(getApplicationContext(), "Composition saved", Toast.LENGTH_LONG).show(); } catch (Exception e) { Toast.makeText(getBaseContext(), e.getMessage(), Toast.LENGTH_LONG).show(); } finish(); } });