我正在從web服務向android設備發送byte []格式的文件。ByteArray To Android中的XML文件
- 如果該文件是一個XML文件,即byte []數組,那麼我怎麼能將它轉換爲原始的XML文件。
- 如果該文件是一個圖像即byte []數組,那麼我怎麼能將它轉換爲原始圖像。
我在三星銀河選項卡上使用android sdk 2.2。
我正在從web服務向android設備發送byte []格式的文件。ByteArray To Android中的XML文件
我在三星銀河選項卡上使用android sdk 2.2。
您的Webservice應該向您發送一些關於文件類型的標識符。字節數組是用於圖像還是用於一般文件。那麼只有你可以知道它是哪種類型的文件。知道文件類型後,您可以將字節數組轉換爲您所需的文件類型。你也可以寫入文件。如果你想打印XML在logcat中您可以使用
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
塊關閉已打開的流,否則你可能會泄漏一個文件描述符。如果您泄漏太多文件描述符,稍後嘗試打開文件或套接字可能會失敗。
是的,這就是我想知道的意思是如何我可以從SOAP Web服務接收一個字節[]在android中,以及如何將該字節[]轉換爲XML文檔,以便我可以將其保存到設備。 – PCS 2011-06-17 06:34:03
好吧,我得到它感謝你的幫助,你能再次幫助我怎麼可以從android中的web服務,即SoapPrimitive result =(SoapPrimitive)envelope.getResponse();是的,我會得到byte []數組的結果? – PCS 2011-06-17 07:15:07
這是一個不同的問題。問一個新的問題。 (FWIW,我不知道......我不使用SOAP。) – 2011-06-17 07:17:16
好的,但我想問的是,如何1)我將字節[]數組轉換爲XML文件。 – PCS 2011-06-17 06:14:17
看到我編輯的答案 – 2011-06-17 06:46:06
好吧我得到它感謝你的幫助,你能再次幫助我怎麼能從web服務在android中的字節[]數組,即SoapPrimitive result =(SoapPrimitive)envelope.getResponse();是的,我會得到byte []數組的結果? – PCS 2011-06-17 07:04:29