我正在将 byte[] 格式的文件从 Web 服务发送到 android 设备。
- 如果该文件是 XML 文件,即 byte[] 数组,那么我如何将其转换为原始 XML 文件。
- 如果该文件是图像,即字节 [] 数组,那么我如何将其转换为原始图像。
我在三星 Galaxy 选项卡上使用 android sdk 2.2。
我正在将 byte[] 格式的文件从 Web 服务发送到 android 设备。
我在三星 Galaxy 选项卡上使用 android sdk 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();
}
谢谢迪帕克
包含 XML 的字节数组已经是XML 文档。如果你想让它成为一个 XML 文件,那么只需将字节写入文件。
这同样适用于图像文件。
您真的只是在问如何将字节数组写入文件吗?
以下是如何在 Java 中将字节写入文件。
byte[] bytes = ...
FileOutputStream fos = new FileOutputStream("someFile.xml");
try {
fos.write(bytes);
} finally {
fos.close();
}
请注意,您需要关闭finally
块中打开的流,否则您可能会泄漏文件描述符。如果您泄漏了太多的文件描述符,以后打开文件或套接字的尝试可能会开始失败。