HarmonyOS 鸿蒙Next 文件转换base64

HarmonyOS 鸿蒙Next 文件转换base64

文件转换base64

使用场景:语音,视频,图片,文件

代码API:9

代码模型:stage

代码介绍:示范在stage模型下读取文件并转换成base64

导入库

import fs from '@ohos.file.fs';
import util from '@ohos.util';
import common from '@ohos.app.ability.common';

执行代码:

let context = getContext(this) as common.UIAbilityContext;
let cacheDir = context.cacheDir;
let filePath = cacheDir + '/01.mp3';
console.info('filePath:' + filePath) // 打印地址
console.info(`第一次:${startTime - new Date().getTime()}`)

let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE); // 打开文件

let stat = fs.statSync(filePath); // 获取文件状态
console.info("stat.size:" + stat.size) // 打印文件的长度
let buf = new ArrayBuffer(stat.size); // 创建一个ArrayBuffer对象
let base64 = new util.Base64Helper(); // 实例化Base64Helper
let num = fs.readSync(file.fd, buf);   // 读取文件
let data = base64.encodeSync(new Uint8Array(buf.slice(0, num))) //  转换成Uint8Array
console.info(`data长度:${data.length}`)
console.info(`data:${data}`)
let textDecoder = util.TextDecoder.create('utf-8', { ignoreBOM : true }) 
let retStr = textDecoder.decodeWithStream(data , {stream: false});   // 可以把Uint8Array转码成base64
console.info(retStr)  // 打印结果

更多关于HarmonyOS 鸿蒙Next 文件转换base64的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于HarmonyOS 鸿蒙Next 文件转换base64的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS中,将文件转换为Base64编码可以通过使用ohos.utils库中的Base64类来实现。首先,你需要读取文件内容,然后使用Base64类的encodeToString方法将文件内容转换为Base64编码的字符串。

具体步骤如下:

  1. 使用ohos.file.fs模块中的File类来读取文件内容。
  2. 将读取到的文件内容通过Base64.encodeToString方法转换为Base64编码的字符串。

以下是示例代码:

import fs from '@ohos.file.fs';
import base64 from '@ohos.utils';

// 文件路径
let filePath = 'your_file_path';

// 读取文件内容
let file = fs.openSync(filePath, fs.OpenMode.READ_ONLY);
let fileContent = fs.readSync(file.fd, new ArrayBuffer(1024));

// 将文件内容转换为Base64编码
let base64String = base64.encodeToString(fileContent, base64.NO_WRAP);

// 关闭文件
fs.closeSync(file.fd);

// 输出Base64编码的字符串
console.log(base64String);

在这个示例中,fs.openSync用于打开文件,fs.readSync用于读取文件内容,base64.encodeToString用于将文件内容转换为Base64编码的字符串。最后,使用fs.closeSync关闭文件。

需要注意的是,Base64.encodeToString方法的第二个参数可以指定编码选项,例如base64.NO_WRAP表示不进行换行处理。

回到顶部