保存json数据到本地和读取本地json数据
private void saveJson(JsonBean bean) {
File file = new File(getFilesDir(), "json.txt");
BufferedReader br = null;
String json;
try {
br = new BufferedReader(new FileReader(file));
json = br.readLine();
} catch (Exception e) {
e.printStackTrace();
json = "";
}
Gson gson = new Gson();
ArrayList<ProductDetailBean> productList = new ArrayList<>();
if (!"".equals(json)) {
Type type = new TypeToken<ArrayList<ProductDetailBean>>(){}.getType();
productList = gson.fromJson(json, type);
}
int index = -1;
for (int i = 0; i < productList.size(); i++) {
ProductDetailBean productDetailBean = productList.get(i);
int id = productDetailBean.product.id;
if (id == bean.product.id) {
index = i;
break;
}
}
if (index != -1) {
productList.remove(index);
}
productList.add(bean);
String newJson = gson.toJson(productList);
FileOutputStream fos = null;
try {
fos = new FileOutputStream(file);
fos.write(newJson.getBytes());
fos.flush();
} catch (Exception e) {
e.printStackTrace();
}
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fos != null) {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
读取本地json数据如下:
ArrayList<JsonBean> jsonList = new ArrayList<>();
private void geJson() {
File file = new File(getFilesDir(), "json.txt");
BufferedReader br = null;
String json;
try {
br = new BufferedReader(new FileReader(file));
json = br.readLine();
} catch (Exception e) {
e.printStackTrace();
json = "";
}
Gson gson = new Gson(); if (!"".equals(json)) {
Type type = new TypeToken<ArrayList<JsonBean>>() {
}.getType();
jsonList = gson.fromJson(json, type);
Collections.reverse(jsonList);
mAdapter = new MyAdapter();
lvList.setAdapter(mAdapter);
} if (br != null) {
try {
br.close(); } catch (IOException e) {
e.printStackTrace();
}
} }
保存json数据到本地和读取本地json数据的更多相关文章
- PureBasic 打开一个一行有多个数据的文件并读取其中某个数据
如果有一个文件如下: TITLE = "Water Wurface Elevation"VARIABLES = "X", "Y", &quo ...
- .net core 读取appsettings.json乱码
.net core 读取配置文件乱码:vs2019读取appsettings.json乱码问题; .net core 读取appsettings.json乱码问题;用notepad++或者其他编辑器打 ...
- JAVA TcpServer端使用Scanner读取不到数据的解决办法
在使用JAVA进行Socket通信时,在Server端使用Scanner的nextLine()方法读取数据时,一直读取不到数据是因为Scanner是一个扫描器,它扫描数据都是去内存中一块缓冲区中进行扫 ...
- 从MongoDB里面取得json格式的数据,然后存为本地的json文件,然后再从json读取变为dict
帮宣传下彩印网(www.caiyin.com) 有印刷,广告等等方面的需求就找这个网站吧,没错的. 天气预报在MongoDB中的天气预报的存储方式是: /* 1 */ { "_id" ...
- ios -本地存储和查看json数据
1.代码创建json文件,并保存到本地 第一步.设置json文件的保存路径 NSString *filePath = [NSHomeDirectory() stringByAppendingStr ...
- Java读取本地json文件
背景 之前一直在弄一个Java爬虫,将爬取的信息保存到了数据库中.但这毕竟是一个课程设计,在设计前端GUI,展示数据的时候最开始是直接通过select语句从数据库中查找的,但我担心交给老师后,老师还要 ...
- ios本地文件内容读取,.json .plist 文件读写
ios本地文件内容读取,.json .plist 文件读写 本地文件.json .plist文件是较为常用的存储本地数据的文件,对这些文件的操作也是一种常用的基础. 本文同时提供初始化变量的比较标准的 ...
- 读取本地的json文件
最近写项目需要读取本地的json文件,然后悲催的发现前端新手的我居然不会,查查找找发现这东西并不难,但是应该是比较常用的,毕竟json太好用了! 我是直接用的jquery实现的,但是Ajax也可以,不 ...
- 读取本地json文件,并转换为dictionary
// 读取本地JSON文件 - (NSDictionary *)readLocalFileWithName:(NSString *)name { // 获取文件路径 NSString *path = ...
随机推荐
- python3 调用zabbix API实现批量增加删除主机,主机各种监控项------实战
在以前的博客中谈到了利用zabbix接口来对主机进行批量的增删改查 这里在不用环境中实战遇到了不同问题,这里记录下来以便后续review 以下为实战中获取token的代码,在zabbix标准接口文档中 ...
- PIL:处理图像的好模块
介绍 PIL是一个专门用来处理图像的模块,可以对图象进行各种各样的变换 打开一张图片 from PIL import Image # 调用Image下的open方法,即可打开一张图片 # 得到的im便 ...
- react typescript FunctionComponent antd crud
这个界面跟之前VUE做的一样.并无任何不同之处,只是用react重复实现了一遍. import React, { useState, useEffect } from 'react'; import ...
- zabbix-server、proxy、agent的分布式部署步骤
1.准备工作 关闭防火墙和SELinux防火墙,因为他们会限制一些访问权限,如果服务器不能关闭就需要手动设置规则,这里测试用就直接关闭了 service firewalld stop; setenfo ...
- 转(static final 和final的区别)
学习java的时候常常会被修饰符搞糊涂,这里总结下static final和final的区别. 1.static 强调只有一份,final 说明是一个常量,final定义的基本类型的值是不可改变的,但 ...
- nmap脚本(nse)使用总结
nmap脚本主要分为以下几类,在扫描时可根据需要设置--script=类别这种方式进行比较笼统的扫描: auth: 负责处理鉴权证书(绕开鉴权)的脚本 broadcast: 在局域网内探查更多服务 ...
- 清空DataGridView
DataTable dt = (DataTable)dgv.DataSource; dt.Rows.Clear(); dgv.DataSource = dt;
- qt5--数据类型转换
QString-->Char* str.toUtf8().data() pointf=QPointF(point); //将QPoint转换为QPointF point ...
- arduino读取GPIO数据
一.接线 五向按键模块接线方法,直接盗图,COM接VCC或GND都可以,只不过获得的电平不同 二.初始化 GPIO接口使用前,必须初始化,设定引脚用于输入还是输出 pinMode(D7, INPUT) ...
- 【Winform-GataGridView】根据DataGridView中的数据内容设置行的文字颜色、背景色 — 根据状态变色
C#中可以根据每行内容的不同来对DataGridView数据表格控制每行的文字颜色.背景颜色进行不同的设置. 效果如下: 实现: 在DataGridView的RowPrePaint事件中进行行颜色控制 ...