HarmonyOS鸿蒙Next中如何修改沙箱路径下json文件的指定内容

HarmonyOS鸿蒙Next中如何修改沙箱路径下json文件的指定内容

解决措施

可以通过以下步骤来完成:

  1. 使用fileIo.openSync获取json文件的fd。
import { fileIo } from '@kit.CoreFileKit';

let basePath = "/test.txt";

let sanFile = fileIo.openSync(basePath, fileIo.OpenMode.READ_WRITE | fileIo.OpenMode.CREATE);

let fd = sanFile.fd;
  1. 通过fileIo.readSync读取json文件内容。
let length: number = 4096;

let arrayBuffer = new ArrayBuffer(length);

let content = fileIo.readSync(fd, arrayBuffer);
  1. 修改内容。
obj.name = 'new name';
  1. 重新写入json文件。
fileIo.writeSync(fd, JSON.stringify(obj));

参考链接

文件管理


更多关于HarmonyOS鸿蒙Next中如何修改沙箱路径下json文件的指定内容的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于HarmonyOS鸿蒙Next中如何修改沙箱路径下json文件的指定内容的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,修改沙箱路径下JSON文件的指定内容可以通过以下步骤实现:

  1. 获取沙箱路径:使用ContextgetFilesDir()方法获取应用沙箱路径。
  2. 读取JSON文件:使用FileInputStream读取文件内容,并解析为JSON对象。
  3. 修改内容:通过JSON对象的方法(如put)修改指定字段。
  4. 写回文件:将修改后的JSON对象转换为字符串,使用FileOutputStream写回文件。

示例代码:

import ohos.app.Context;
import org.json.JSONObject;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

public void modifyJsonFile(Context context, String fileName, String key, String newValue) {
    try {
        File file = new File(context.getFilesDir(), fileName);
        FileInputStream fis = new FileInputStream(file);
        byte[] data = new byte[(int) file.length()];
        fis.read(data);
        fis.close();

        JSONObject json = new JSONObject(new String(data, "UTF-8"));
        json.put(key, newValue);

        FileOutputStream fos = new FileOutputStream(file);
        fos.write(json.toString().getBytes());
        fos.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

此代码展示了如何读取、修改并写回JSON文件。

回到顶部