gpt4 book ai didi

java - 读取 XML 文件需要很长时间

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:11:06 26 4
gpt4 key购买 nike

我已经将图像编码成 xml 文件,在解码时我遇到执行时间长的问题(中等大小的图像将近 20 分钟),下面的代码显示了我现在如何将 xml 转换成字符串,这需要很长时间具有大图像的 xml 的时间,他们是否有其他方法可以在更短的时间内将 xml 转换为字符串。

String s1= new String();
System.out.println("Reading From XML file:");
InputStream inst = new FileInputStream("c:/collection.xml");
long size = inst.available();
for(long i=0;i<size;i++)
{
s1=s1+ (char)inst.read();

}
inst.close();

当我的 xml 包含多个图像时,问题会更糟。

最佳答案

使用 StringBuilder 而不是 String s1。字符串连接 s1=s1+ (char)inst.read(); 是问题所在。

另一件需要修复的事情 - 使用 BufferedInputStream 因为从 FileInputStream 中按字节读取是非常低效的。

用available不好,这样更好

for(int i; (i = inst.read()) != -1;) {
...
}

总而言之

    StringBuilder sb= new StringBuilder();
try (InputStream inst = new BufferedInputStream(new FileInputStream("c:/collection.xml"))) {
for(int i; (i = inst.read()) != -1;) {
sb.append((char)i);
}
}
String s = sb.toString();

如果文件足够小可以放入内存

    File file = new File("c:/collection.xml");
byte[] buf = new byte[(int)file.length()];
try (InputStream in = new FileInputStream(file)) {
in.read(buf);
}
String s = new String(buf, "ISO-8859-1");

关于java - 读取 XML 文件需要很长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20949612/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com