HarmonyOS鸿蒙Next中请问怎么将.txt文本文件读入,然后构成二维数组?

HarmonyOS鸿蒙Next中请问怎么将.txt文本文件读入,然后构成二维数组? 请问怎么将.txt文本文件读入,然后构成二维数组?

cke_267.png


更多关于HarmonyOS鸿蒙Next中请问怎么将.txt文本文件读入,然后构成二维数组?的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

可使用resourceManager进行.txt文件的读取;然后创建二维数组进行录入。具体参考一下代码

//Index.ets文件
import { parseTable, readRawFile } from './ResourceUtil';
async function loadData() {
  const text = await readRawFile('data.txt');
  const table: string[][] = parseTable(text);// 二维数组
  console.info(JSON.stringify(table));
  // 输出: [["阿@3-1","网@03-1","哎@0+*","良@609"],["唤@0422","@5422","换@8422","电@9816"],["品@891"]]
}

@Entry
@Component
struct Index {
  async aboutToAppear() {
    // 创建正确的 Configuration 对象
   await loadData()
  }
  build() {
    Column() {
      Text('Hello')
        Button("二维数组")
          .onClick(()=>{
           loadData()
          })
        .fontSize(30)
    }
  }
}
//ResourceUtil.ets文件

import { util } from '@kit.ArkTS';

/** 读取 rawfile 内任意文本文件 */
export async function readRawFile(fileName: string): Promise<string> {
  const rm = getContext().resourceManager;
  const buf = await rm.getRawFileContent(fileName);// Uint8Array
  const decoder = util.TextDecoder.create('utf-8', { ignoreBOM: true });
  return decoder.decodeToString(buf, { stream: false });
}

/** 按空白分隔成二维数组,自动跳过空行 */
export function parseTable(content: string, skipLines: number = 0): string[][] {
  return content
    .split(/\r?\n/)             // 按行拆
    .slice(skipLines)           // 去掉表头
    .map(l => l.trim())
    .filter(l => l)             // 去空行
    .map(l => l.split(/\s+/)); // 任意空白当分隔
}

cke_7439.png

更多关于HarmonyOS鸿蒙Next中请问怎么将.txt文本文件读入,然后构成二维数组?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS Next中读取txt文件并构建二维数组的方法:

使用@ohos.file.fs模块的readText接口读取文件内容:

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

let filePath = 'path/to/your/file.txt';
let content = fs.readTextSync(filePath);

处理文本内容:

let lines = content.split('\n');
let twoDimArray = lines.map(line => line.split(','));

此代码将按行分割文本,再按逗号分割每行数据,生成二维数组。根据实际文件分隔符调整split参数。

在HarmonyOS Next中,可以通过@ohos.file.fs模块读取文本文件内容,然后根据数据格式(如逗号或空格分隔)解析为二维数组。以下是示例代码:

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

// 假设文件路径已知
let filePath = '.../data.txt';

try {
  // 读取文件内容
  let content = fs.readTextSync(filePath);
  
  // 按行分割
  let lines = content.split('\n');
  let result = [];
  
  // 逐行解析数据
  for (let line of lines) {
    if (line.trim() === '') continue; // 跳过空行
    // 假设每行数据以逗号分隔
    let row = line.split(',').map(num => parseFloat(num.trim()));
    result.push(row);
  }
  
  console.log('二维数组:', result);
} catch (err) {
  console.error('读取文件失败:', err);
}

注意替换实际文件路径,并根据文本内容的分隔符调整split参数(例如空格分隔使用split(' '))。如果数据格式复杂(如混合分隔符),需添加额外的清洗或解析逻辑。

回到顶部