保存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 = ...
随机推荐
- oracle服务端字符集
一.oracle服务端字符集 SQL> select userenv('language') from dual ; USERENV('LANGUAGE')------------------- ...
- 防范DDoS攻击的15个方法
0x01 背景 为了对抗 DDoS(分布式拒绝服务)攻击,你需要对攻击时发生了什么有一个清楚的理解..简单来讲,DDoS 攻击可以通过利用服务器上的漏洞,或者消耗服务器上的资源(例如 内存.硬盘等等) ...
- Spark写入HBase(Bulk方式)
在使用Spark时经常需要把数据落入HBase中,如果使用普通的Java API,写入会速度很慢.还好Spark提供了Bulk写入方式的接口.那么Bulk写入与普通写入相比有什么优势呢? BulkLo ...
- 51单片机通过ESP8266模块与手机进行通讯(单片机)
相关连接和资料下载: 个人博客 资料下载 Step1:配置ESP8266 通过USB转TTL模块把ESP8266模块和电脑连接起来,如图: 把ESP8266模块的VCC,GND,CH_PD,UTXD, ...
- Linux :file、which 、whereis、locate、find
1 file 观察文件类型 file 文件 2 which 寻找文件 选项与参数: -a : 将所有由PATH目录中可以知道的指令列出,而不止一个被找到的指令名称 3 whereis 寻找特定文件 ...
- 【hdu 6067】Big Integer
题意 给你一个 \((k-1)\times (n+1)\) 的 \(01\) 矩阵 \(g\),求满足下列条件的 \(k(k\le 10)\) 进制整数的数量: 1. 不超过 \(n\) 位且数的最高 ...
- k8s master节点添加kubectl的使用
- noi.ac NA529 【神树的矩阵】
表示今天一发A了这题拿了rk3...是个sb构造... 考虑除了\(n=1/m=1\)的情况,最小次数\(ans\)不会\(>3\). 对于\(n=1/m=1\),暴力即可. 然后考虑\(ans ...
- oracle 数据库安装及jdbc的连接
今天,我在oracle的官网下载了数据库并进行安装,其中遇到一些问题,在此进行记录. 1.下载,之后,按照网上的教程进行安装,开始遇到 下载之后出现11g 出现ins13001环境不满足最低要求 这个 ...
- qt5-自定义类
创建一个自定义按钮类: 右击工程目录--->--->--->---> ---> --->