【问题标题】:ByteArray To XML file in AndroidAndroid中的ByteArray到XML文件
【发布时间】:2011-09-16 22:30:10
【问题描述】:

我正在从网络服务向安卓设备发送一个字节[]格式的文件。

  1. 如果该文件是 XML 文件,即 byte[] 数组,那么我如何将其转换为原始 XML 文件。
  2. 如果该文件是图像,即 byte[] 数组,那么我如何将其转换为原始图像。

我在三星 Galaxy 选项卡上使用 android sdk 2.2。

【问题讨论】:

    标签: java android android-widget android-xml


    【解决方案1】:

    您的 Web 服务应该向您发送一些关于文件类型的标识符。字节数组是用于图像还是用于一般文件。那么只有您可以知道它是哪种类型的文件。知道文件类型后,您可以将字节数组转换为您想要的文件类型。您也可以写入文件。如果您想在 logcat 中打印该 xml,您可以使用

    String xmlData = new String(byte[] data); System.out.println(xmlData)
    

    如果您知道文件格式,请创建一个文件(无论是 xml 还是图像或其他任何内容)

    String extension = ".xml"//or ".jpg" or anything
    String filename = myfile+extension;
    byte[] data = //the byte array which i got from server
    File f = new File(givepathOfFile+filename );
    
            try {
                f.createNewFile();
    
                // write the bytes in file
                FileOutputStream fo = new FileOutputStream(f);
                fo.write(data );
                fo.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    

    谢谢 迪帕克

    【讨论】:

    • 好的,但我想问的是,1)我如何将 byte[] 数组转换为 xml 文件。
    • 好的,我明白了,感谢您的帮助,您能否再次帮助我了解如何从 android 中的 Web 服务获取 byte[] 数组,即 SoapPrimitive result=(SoapPrimitive)envelope.getResponse();我会在结果中得到 byte[] 数组对吗?
    【解决方案2】:

    包含 XML 的字节数组已经是 XML 文档。如果你想让它成为一个 XML 文件,那么只需将字节写入一个文件。

    这同样适用于图像文件。

    您真的只是在问如何将字节数组写入文件吗?


    以下是如何在 Java 中将字节写入文件。

    byte[] bytes = ...
    FileOutputStream fos = new FileOutputStream("someFile.xml");
    try {
        fos.write(bytes);
    } finally {
        fos.close();
    }
    

    请注意,您需要关闭 finally 块中打开的流,否则您可能会泄露文件描述符。如果您泄漏太多文件描述符,以后尝试打开文件或套接字可能会开始失败。

    【讨论】:

    • 是的,这就是我想知道的,这意味着我如何在 android 中从肥皂网络服务接收一个字节 [],以及如何将该字节 [] 转换为 XML 文档,以便我可以将其保存到设备.
    • 好的,我明白了,感谢您的帮助,您能否再次帮助我了解如何从 android 中的 Web 服务获取 byte[] 数组,即 SoapPrimitive result=(SoapPrimitive)envelope.getResponse();我会在结果中得到 byte[] 数组对吗?
    • 这是一个不同的问题。问一个新问题。 (FWIW,我不知道......我不使用 SOAP。)
    猜你喜欢
    • 2012-10-11
    • 2014-09-17
    • 2012-01-26
    • 2014-04-19
    • 1970-01-01
    • 2013-06-05
    • 1970-01-01
    • 1970-01-01
    • 2011-11-01
    相关资源
    最近更新 更多