android 存储到本地json文件的代码
时间: 2023-04-04 09:04:24 浏览: 162
以下是将 JSON 数据存储到本地文件的 Android 代码示例:
```java
// 创建 JSON 数据
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", "John");
jsonObject.put("age", 30);
// 将 JSON 数据写入本地文件
File file = new File(context.getFilesDir(), "data.json");
FileWriter fileWriter = new FileWriter(file);
fileWriter.write(jsonObject.toString());
fileWriter.flush();
fileWriter.close();
```
注意:在使用这段代码之前,需要先添加对 JSON 库的依赖,例如使用 Google 的 Gson 库:
```gradle
implementation 'com.google.code.gson:gson:2.8.6'
```
相关问题
android 实现fastjson解析本地json文件为bean
要在 Android 应用程序中使用 fastjson 库解析本地 JSON 文件为 Java Bean,可以按照以下步骤进行:
1. 引入 fastjson 库
在你的项目中添加 fastjson 库的依赖。可以通过 Gradle、Maven 或手动导入 JAR 包的方式进行添加。
2. 创建 Java Bean
创建一个 Java Bean,用于存储 JSON 文件中的数据。
```java
public class ExampleBean {
private String name;
private int age;
private List<String> hobbies;
// getter 和 setter 方法
}
```
3. 解析 JSON 文件
使用 fastjson 库将本地 JSON 文件解析成 Java Bean。以下是一个简单的示例代码,假设你的 JSON 文件名为 "example.json":
```java
try {
InputStream is = getAssets().open("example.json"); // 打开文件输入流
int size = is.available(); // 获取文件大小
byte[] buffer = new byte[size]; // 创建一个缓冲区
is.read(buffer); // 将文件内容读入缓冲区
is.close(); // 关闭文件输入流
String json = new String(buffer, "UTF-8"); // 将缓冲区内的字节转换为字符串
ExampleBean bean = JSON.parseObject(json, ExampleBean.class); // 解析 JSON 字符串为 Java Bean
// 使用解析出来的 Java Bean 进行相关操作
String name = bean.getName();
int age = bean.getAge();
List<String> hobbies = bean.getHobbies();
// ...
} catch (IOException e) {
e.printStackTrace();
}
```
在上述代码中,我们首先打开文件输入流,然后将文件内容读入缓冲区,接着将缓冲区内的字节转换为字符串,最后使用 fastjson 库将 JSON 字符串解析成 Java Bean。需要注意的是,此处我们将文件内容读入缓冲区时使用了 UTF-8 编码,因此在创建 String 对象时也需要指定相应的编码方式。
android 读取本地txt json
可以使用以下代码读取本地的txt或json文件:
```java
public String readFromFile(Context context, String fileName) {
String result = "";
try {
InputStream inputStream = context.openFileInput(fileName);
if (inputStream != null) {
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String tempString = "";
StringBuilder stringBuilder = new StringBuilder();
while ((tempString = bufferedReader.readLine()) != null) {
stringBuilder.append(tempString);
}
bufferedReader.close();
inputStreamReader.close();
inputStream.close();
result = stringBuilder.toString();
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
```
其中,context参数是上下文对象,fileName是文件名,包括扩展名。如果是在assets文件夹中的文件,则需要使用以下代码读取:
```java
public String readFromAssets(Context context, String fileName) {
String result = "";
try {
InputStream inputStream = context.getAssets().open(fileName);
if (inputStream != null) {
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String tempString = "";
StringBuilder stringBuilder = new StringBuilder();
while ((tempString = bufferedReader.readLine()) != null) {
stringBuilder.append(tempString);
}
bufferedReader.close();
inputStreamReader.close();
inputStream.close();
result = stringBuilder.toString();
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
```
使用方法:
```java
String txtData = readFromFile(this, "data.txt"); // 读取本地txt文件
String jsonData = readFromAssets(this, "data.json"); // 读取assets文件夹中的json文件
```
需要注意的是,在使用openFileInput()方法打开文件时,文件应该存储在/data/data/包名/files目录下。如果要读取其他目录下的文件,可以使用FileInputStream或者RandomAccessFile类。