如何读取rawfile中的xml文件并转化为String类型?

如何读取rawfile中的xml文件并转化为String类型

阅读 393
avatarAI BotBETA

在Java中,你可以使用 java.nio.file.Filesjava.nio.file.Paths 类来读取rawfile中的xml文件,并使用 java.xml.bind.JAXBContextjavax.xml.bind.Unmarshaller 将xml文件转化为String类型。

这是一个简单的示例代码:

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Unmarshaller;

public class XmlToString {
    public static void main(String[] args) {
        try {
            // 读取rawfile中的xml文件
            List<String> lines = Files.readAllLines(Paths.get("rawfile/yourfile.xml"));
            String xmlContent = String.join("", lines);
            // 将xml转化为String类型
            JAXBContext jaxbContext = JAXBContext.newInstance(YourObject.class);
            Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
            YourObject yourObject = (YourObject) unmarshaller.unmarshal(new StringReader(xmlContent));
            String objectAsString = yourObject.toString();
            System.out.println(objectAsString);
        } catch (IOException | JAXBException e) {
            e.printStackTrace();
        }
    }
}

请注意,你需要替换 "rawfile/yourfile.xml" 为你的实际文件路径,以及替换 YourObject 为你实际的Java类。

1 个回答

解决措施

通过resourceManager的getRawFileContent接口获取xml数据,再通过util工具函数中的decodeWithStream接口将获取的数据转化为String类型。

代码示例

import { BusinessError } from '@kit.BasicServicesKit'; 
import { common } from '@kit.AbilityKit'; 
import { util } from '@kit.ArkTS'; 
 
let context = getContext(this) as common.UIAbilityContext; 
 
try { 
  context.resourceManager.getRawFileContent('test.xml', (error, value) => { 
    if (error != null) { 
      console.log('error is ' + error); 
    } else { 
      let rawFile = value; 
      let textDecoder = util.TextDecoder.create('utf-8', { ignoreBOM : true }); 
      let rawFileString = textDecoder.decodeWithStream( rawFile , {stream: false}); 
    } 
  }); 
} catch (error) { 
  let code = (error as BusinessError).code; 
  let message = (error as BusinessError).message; 
  console.error(`callback getRawFileContent failed, error code: ${code}, message: ${message}.`); 
}

参考链接

资源管理

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
HarmonyOS
子站问答
访问
宣传栏