2011-06-17 50 views
2

我正在從web服務向android設備發送byte []格式的文件。ByteArray To Android中的XML文件

  1. 如果該文件是一個XML文件,即byte []數組,那麼我怎麼能將它轉換爲原始的XML文件。
  2. 如果該文件是一個圖像即byte []數組,那麼我怎麼能將它轉換爲原始圖像。

我在三星銀河選項卡上使用android sdk 2.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(); 
     } 

感謝 迪帕克

+1

好的,但我想問的是,如何1)我將字節[]數組轉換爲XML文件。 – PCS 2011-06-17 06:14:17

+0

看到我編輯的答案 – 2011-06-17 06:46:06

+0

好吧我得到它感謝你的幫助,你能再次幫助我怎麼能從web服務在android中的字節[]數組,即SoapPrimitive result =(SoapPrimitive)envelope.getResponse();是的,我會得到byte []數組的結果? – PCS 2011-06-17 07:04:29

0

包含XML的字節數組已經是的一個XML文檔。如果你想使它成爲一個XML文件,那麼只需將這些字節寫入一個文件即可。

這同樣適用於圖像文件。

你真的只是問如何寫一個字節數組作爲一個文件?


以下是如何在Java中將文件寫入文件的方法。

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

請注意,您需要在finally塊關閉已打開的流,否則你可能會泄漏一個文件描述符。如果您泄漏太多文件描述符,稍後嘗試打開文件或套接字可能會失敗。

+0

是的,這就是我想知道的意思是如何我可以從SOAP Web服務接收一個字節[]在android中,以及如何將該字節[]轉換爲XML文檔,以便我可以將其保存到設備。 – PCS 2011-06-17 06:34:03

+0

好吧,我得到它感謝你的幫助,你能再次幫助我怎麼可以從android中的web服務,即SoapPrimitive result =(SoapPrimitive)envelope.getResponse();是的,我會得到byte []數組的結果? – PCS 2011-06-17 07:15:07

+0

這是一個不同的問題。問一個新的問題。 (FWIW,我不知道......我不使用SOAP。) – 2011-06-17 07:17:16