Android read write json

直接贴代码了,这个是用google提供的json库 gson 2.5 下载地址download

	private void loadData(){
		File fileDir = getFilesDir();
		String fileDirString = fileDir.getPath();
		String jsonFilePath = fileDirString + File.separator + FILE_NAME_JSON;
		
		File jsonFile = new File(jsonFilePath);
		if (jsonFile.exists() == false) {
			try {
				boolean bret = jsonFile.createNewFile();
				if (false == bret) {
					return;
				}
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				return;
			}
		}
			
		writeData(jsonFilePath);
		
		readData(jsonFilePath);		
	}
	
	private void writeData(final String jsonFilePath){
		
		JSONObject jsonObject = new JSONObject();
		
		try {
			jsonObject.put("id", "1222");
			jsonObject.put("name", "Mrs Joden.");
			jsonObject.put("phone", "224-33223624");
			
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return;
		}
		
		FileWriter fileWriter = null;
		
		try {
			fileWriter = new FileWriter(jsonFilePath);
			fileWriter.write(jsonObject.toString());
			fileWriter.flush();
		} catch (Exception e) {
			// TODO: handle exception
		}
		finally{
			if (null != fileWriter) {
				
				try {
					fileWriter.close();
					fileWriter = null;
					
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
		
		
	}
	
	private void readData(final String jsonFilePath){
		
		InputStream inputStream = null;
		String jsonString;
		
		try {
			
			inputStream = new FileInputStream(jsonFilePath);
			
			int size = inputStream.available();
			
			byte buffer[] = new byte[size];
			
			inputStream.read(buffer);
			
			jsonString = new String(buffer,"UTF-8");
			
		} catch (Exception e) {
			// TODO: handle exception
			return;
		}
		finally{
			if (null != inputStream) {
				try {
					inputStream.close();
					inputStream = null;
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
		
		String s = jsonString;
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值