3

我正在将 byte[] 格式的文件从 Web 服务发送到 android 设备。

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

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

4

2 回答 2

2

您的 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();
        }

谢谢迪帕克

于 2011-06-17T06:10:41.093 回答
0

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

这同样适用于图像文件。

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


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

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

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

于 2011-06-17T06:27:10.320 回答