先要创建一个写数据的类:其中Folk是个实体类
- class MyJsonWriter {
- ArrayList<Folk> folks;
- File saveFile;
- public MyJsonWriter(ArrayList<Folk> folks){
- this.folks=folks;
- }
- public void setFilePath(String filepath){
- saveFile=new File(filepath);
- try {
- saveFile.createNewFile();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- public String getJsonData(){
- String jsonData = null;
- // String jsonData=new JSONStringer().object().key("village").value("abc").endObject().toString();
- try {
- StringBuilder builder=new StringBuilder();
- ArrayList<String> folksData=new ArrayList<String>();
- JSONArray array=new JSONArray();
- for(int i=0;i<folks.size();i++){
- Folk folk=folks.get(i);
- JSONObject jsonObject=new JSONObject();
- jsonObject.put("name", folk.getName());
- jsonObject.put("sex", folk.isSex()?"male":"female");
- jsonObject.put("age", folk.getAge());
- jsonObject.put("career", folk.getCareer());
- jsonObject.put("salary", folk.getSalary());
- folksData.add(jsonObject.toString());
- array.put(jsonObject);
- }
- // JSONArray jsonArray=new JSONArray(folksData);
- int len = array.length();
- jsonData=new JSONStringer().object().key("vallage").value(array).endObject().toString();
- System.out.println(jsonData);
- writeData(jsonData);
- } catch (JSONException e) {
- e.printStackTrace();
- }
- return jsonData;
- }
- private void writeData(String jsonData) {
- try {
- BufferedReader reader=new BufferedReader(new StringReader(jsonData));
- BufferedWriter writer=new BufferedWriter(new FileWriter(saveFile));
- int len=0;
- char[] buffer=new char[1024];
- while((len=reader.read(buffer))!=-1){
- writer.write(buffer, 0, len);
- }
- writer.flush();
- writer.close();
- reader.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- public void writeData(){
- ArrayList<Folk> floks=new ArrayList<Folk>();
- Folk flok1=new Folk();
- flok1.setAge("10");
- flok1.setCareer("1");
- flok1.setName("flok1");
- flok1.setSalary(1);
- flok1.setSex(true);
- floks.add(flok1);
- Folk flok2=new Folk();
- flok2.setAge("11");
- flok2.setCareer("2");
- flok2.setName("flok2");
- flok2.setSalary(2);
- flok2.setSex(true);
- floks.add(flok2);
- Folk flok3=new Folk();
- flok3.setAge("12");
- flok3.setCareer("3");
- flok3.setName("flok3");
- flok3.setSalary(3);
- flok3.setSex(true);
- floks.add(flok3);
- MyJsonWriter writer=new MyJsonWriter(floks);
- writer.setFilePath(PATH);
- writer.getJsonData();
- }
- readbtn.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- new Thread() {
- @Override
- public void run() {
- Message msg = handler.obtainMessage();
- msg.obj = getFileFromSD(PATH);
- msg.what = 1;
- handler.sendMessage(msg);
- }
- }.start();
- }
- });
- }
- private Handler handler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- if (msg.what == 1) {
- String result = (String) msg.obj;
- try {
- JSONObject jObj = new JSONObject(result);
- tv.setText("people:"+jObj.getString("vallage"));
- } catch (JSONException e) {
- e.printStackTrace();
- }
- }
- }
- };
- private String getFileFromSD(String path) {
- String result = "";
- try {
- FileInputStream f = new FileInputStream(path);
- BufferedReader bis = new BufferedReader(new InputStreamReader(f));
- String line = "";
- while ((line = bis.readLine()) != null) {
- result += line;
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- return result;
- }