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数据的更多相关文章

  1. PureBasic 打开一个一行有多个数据的文件并读取其中某个数据

    如果有一个文件如下: TITLE = "Water Wurface Elevation"VARIABLES = "X", "Y", &quo ...

  2. .net core 读取appsettings.json乱码

    .net core 读取配置文件乱码:vs2019读取appsettings.json乱码问题; .net core 读取appsettings.json乱码问题;用notepad++或者其他编辑器打 ...

  3. JAVA TcpServer端使用Scanner读取不到数据的解决办法

    在使用JAVA进行Socket通信时,在Server端使用Scanner的nextLine()方法读取数据时,一直读取不到数据是因为Scanner是一个扫描器,它扫描数据都是去内存中一块缓冲区中进行扫 ...

  4. 从MongoDB里面取得json格式的数据,然后存为本地的json文件,然后再从json读取变为dict

    帮宣传下彩印网(www.caiyin.com) 有印刷,广告等等方面的需求就找这个网站吧,没错的. 天气预报在MongoDB中的天气预报的存储方式是: /* 1 */ { "_id" ...

  5. ios -本地存储和查看json数据

    1.代码创建json文件,并保存到本地   第一步.设置json文件的保存路径 NSString *filePath = [NSHomeDirectory() stringByAppendingStr ...

  6. Java读取本地json文件

    背景 之前一直在弄一个Java爬虫,将爬取的信息保存到了数据库中.但这毕竟是一个课程设计,在设计前端GUI,展示数据的时候最开始是直接通过select语句从数据库中查找的,但我担心交给老师后,老师还要 ...

  7. ios本地文件内容读取,.json .plist 文件读写

    ios本地文件内容读取,.json .plist 文件读写 本地文件.json .plist文件是较为常用的存储本地数据的文件,对这些文件的操作也是一种常用的基础. 本文同时提供初始化变量的比较标准的 ...

  8. 读取本地的json文件

    最近写项目需要读取本地的json文件,然后悲催的发现前端新手的我居然不会,查查找找发现这东西并不难,但是应该是比较常用的,毕竟json太好用了! 我是直接用的jquery实现的,但是Ajax也可以,不 ...

  9. 读取本地json文件,并转换为dictionary

    // 读取本地JSON文件 - (NSDictionary *)readLocalFileWithName:(NSString *)name { // 获取文件路径 NSString *path = ...

随机推荐

  1. VMware安装CentOS7_1511 mini版本

    这次安装使用的是 CentOS7_1511_mini 如果没有点击下载 点击下载

  2. JS实现table表格在鼠标移动出现一行变色或者十字叉变色

    1,一行变色 <script> function trBg(){ var tab=document.getElementById("table"); var tr=ta ...

  3. css 规范标签

    页头:header 登录条:loginBar 标志:logo 侧栏:sideBar 广告:banner 导航:nav 子导航:subNav 菜单:menu 子菜单:subMenu 搜索:search ...

  4. SQLAlchemy中Model.query和session.query(Model)的区别

    我们使用Flask 0.11.1,Flask-SQLAlchemy 2.1使用PostgreSQL作为DBMS. 示例使用以下代码更新数据库中的数据: entry = Entry.query.get( ...

  5. 第四章 生命周期函数--36 结合Node手写JSONP服务器剖析JSONP原理

  6. HDU - 6704 K-th occurrence (后缀数组+主席树/后缀自动机+线段树合并+倍增)

    题意:给你一个长度为n的字符串和m组询问,每组询问给出l,r,k,求s[l,r]的第k次出现的左端点. 解法一: 求出后缀数组,按照排名建主席树,对于每组询问二分或倍增找出主席树上所对应的的左右端点, ...

  7. 【银川网络赛G】Factories

    题目大意:给定一棵 N 个节点的树,边有边权,选定 M 个叶子节点,使得任意两个叶子节点的树上距离之和最小,求最小值是多少. 题解:任意两点的树上距离和问题应从边的贡献角度考虑. 设 \(f[u][i ...

  8. DevExpress ASP.NET Core v19.1版本亮点:Pivot Grid控件等

    行业领先的.NET界面控件DevExpress 发布了v19.1版本,本文将以系列文章的方式为大家介绍DevExpress ASP.NET Core Controls v19.1中新增的一些控件及增强 ...

  9. MYSQL数据库事务4种隔离级别及7种传播行为

    事务的特性: 原子性:事务的不可分割,组成事务的各个逻辑单元不可分割. 一致性:事务执行的前后,数据完整性保持一致. 隔离性:事务执行不应该受到其他事务的干扰. 持久性:事务一旦结束,数据就持久化到数 ...

  10. django与ajax:ajax结合sweetalter ,批量插入数据 ;分页器组件

    目录 一.ajax结合sweetalter 二.bulk_create批量插入数据 三.简易版分页器推导 1. 推导步骤 四.自定义分页器的使用 1. 自定义分页器模板 2. 使用方法 (1)后端代码 ...