将二进制流转换为字节?

Shw*_*eta 1 android byte file binary-data downloadfile

我有二进制流,我希望它以字节转换.之后我想将它下载到SD卡中.

我的网络服务:

    POST /**********Mobile/**********.asmx HTTP/1.1
    Host: ***.***.*.*
    Content-Type: text/xml; charset=utf-8
    Content-Length: length
    SOAPAction: "http://tempuri.org/GetDocument"

    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

    <soap:Body>
        <GetDocument xmlns="http://tempuri.org/">
           <DocumentID>string</DocumentID>
       </GetDocument>
    </soap:Body>
 </soap:Envelope>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"      
xmlns:xsd="http://www.w3.org/2001/XMLSchema"     
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
  <GetDocumentResponse xmlns="http://tempuri.org/">
    <GetDocumentResult>string</GetDocumentResult>
  </GetDocumentResponse>
</soap:Body>
</soap:Envelope>
Run Code Online (Sandbox Code Playgroud)

我在想的是

 SoapObject DocumentRequest = new SoapObject(NAMESPACE, GET_DOCUMENT_METHOD);

        DocumentRequest.addProperty("DocumentID", ID);
        Log.i("DocumentID", ID);

        SoapSerializationEnvelope Envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        Envelope.dotNet = true;
        Envelope.setOutputSoapObject(DocumentRequest);
        HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
        androidHttpTransport.debug = true;

        androidHttpTransport.call(SOAP_ACTION_GETDOCUMENT, Envelope);

        SoapPrimitive DocumentResponse = (SoapPrimitive)Envelope.getResponse();
        Log.i("DocumentResponse", DocumentResponse.toString());

        String DocAsString = DocumentResponse.toString();

        byte[] decodedString = DocAsString.getBytes();

        Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
        ImageView DisplayDoc= (ImageView)findViewById(R.id.displayimage);
        DisplayDoc.setImageBitmap(decodedByte);
}
Run Code Online (Sandbox Code Playgroud)

我得到二进制流作为字符串是正确的或我需要使用base64binary.如果是,那么请让我知道下载image/.pdf/word doc的正确方法.我经历过差异搜索,但没有用.谢谢

编辑:

SoapPrimitive DocumentResponse = (SoapPrimitive)Envelope.getResponse();
        Log.i("DocumentResponse", DocumentResponse.toString());

        String DocAsString = DocumentResponse.toString();

        byte[] decodedString = Base64.decode(DocAsString, Base64.DEFAULT);

        /*Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
        ImageView DisplayDoc= (ImageView)findViewById(R.id.displayimage);
        DisplayDoc.setImageBitmap(decodedByte);*/

         File direct = new File(Environment.getExternalStorageDirectory() + "/Downloads");

         if(!direct.exists())  {
             direct.mkdir(); }
        File photo=new File(Environment.getExternalStorageDirectory() + "/Downloads", ID);

         if (photo.exists()) {
              photo.delete(); }

     try {
       FileOutputStream fos=new FileOutputStream(photo.getPath());

       fos.write(decodedString);
       fos.close();

       ContentValues values= new ContentValues();

       System.out.println(values);

     }
     catch (java.io.IOException e) 
     {
       Log.e("PictureDemo", "Exception in photoCallback", e);
     }
    }
    catch(Exception e) {
        e.printStackTrace();
        Toast.makeText(getApplicationContext(), " Network Exception : " + e
                + "Please check network connectivity.", Toast.LENGTH_LONG).show();
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑,Web服务响应

03-19 10:58:57.797: D/dalvikvm(789): GC_FOR_ALLOC freed 57K, 4% free 6912K/7171K, paused 53ms
Run Code Online (Sandbox Code Playgroud)

03-19 10:58:57.807:I/dalvikvm-heap(789):将堆(frag case)增长到7.313MB,用于488976字节分配03-19 10:58:57.957:​​D/dalvikvm(789):GC_CONCURRENT释放1K,4%免​​费7388K/7687K,暂停4ms + 14ms 03-19 10:58:58.357:D/gralloc_goldfish(789):未检测到GPU仿真的仿真器.03-19 10:58:58.497:W/TextLayoutCache(789):computeValuesWithHarfbuzz - 需要强制单次运行03-19 10:59:02.327:D/InputEventConsistencyVerifier(789):KeyEvent:ACTION_UP但键未关闭.03-19 10:59:02.327:D/InputEventConsistencyVerifier(789):在android.widget.EditText@41054cd8 03-19 10:59:02.327:D/InputEventConsistencyVerifier(789):0:发送于2335155000000,KeyEvent {action = ACTION_UP,keyCode = KEYCODE_TAB,scanCode = 15,metaState = 0,flags = 0x8,repeatCount = 0,eventTime = 2335155,downTime = 2335119,deviceId = 0,source = 0x101} 03-19 10:59:04.488:I/LoginDetail (789):用户名jarnail@sassypuma.comPassword admin 03-19 10:59:04.537:D/dalvikvm(789):GC_FOR_ALLOC释放71K,3%免费7634K/7815K,暂停40ms 03-19 10:59:04.937:我/ myLogin(789):1 03-19 10:59:05.357:D/dalvikvm(789):GC_CONCURRENT释放360K,7%免费7698K/8199K,暂停7ms + 23ms 03-19 10:59:05.547:I/AllFolders (789):anyType {TreeData = anyType {ID = 13002; FolderName =我的云端硬盘; PARENTID = 0; CreatedBy = 1; }; TreeData = anyType的{ID = 13006; 文件夹名称= Testing1; PARENTID = 0; CreatedBy = 1; }; TreeData = anyType的{ID = 13007; 文件夹名称=是testing123; PARENTID = 0; CreatedBy = 1; }; } 03-19 10:59:05.547:I/System.out(789):3 03-19 10:59:06.057:D/dalvikvm(789):GC_CONCURRENT释放362K,7%免费7761K/8263K,暂停31ms + 7ms 03-19 10:59:06.217:W/TextLayoutCache(789):computeValuesWithHarfbuzz - 需要强制单次运行03-19 10:59:06.627:W/IInputConnectionWrapper(789):finishComposingText on inactive InputConnection 03-19 10 :59:08.307:I/FolderID(789):13002 03-19 10:59:08.307:I/User_ID(789):1 03-19 10:59:08.367:D/dalvikvm(789):GC_FOR_ALLOC释放16K, 5%免费7874K/8263K,暂停45ms 03-19 10:59:08.377:I/dalvikvm-heap(789):将堆(frag case)增长到8.036MB,用于262160字节分配03-19 10:59:08.417: D/dalvikvm(789):GC_FOR_ALLOC释放3K,6%免费8127K/8583K,暂停44ms 03-19 10:59:08.917:I/SubFolders(789):anyType {FileFolderDetails = anyType {ID = 13003; Name = Doc文件; URL = anyType的{}; SubjectType =文件夹; }; FileFolderDetails = anyType的{ID = 13004; 姓名=我的照片; URL = anyType的{}; SubjectType =文件夹; }; FileFolderDetails = anyType的{ID = 13005; NAME =测试; URL = anyType的{}; SubjectType =文件夹; }; FileFolderDetails = anyType的{ID = 13075; NAME =萨特南; URL = anyType的{}; SubjectType =文件夹; }; FileFolderDetails = anyType的{ID = 13080; NAME =赛尼; URL = anyType的{}; SubjectType =文件夹; }; FileFolderDetails = anyType的{ID = 13084; NAME =果冻; URL = anyType的{}; SubjectType =文件夹; }; FileFolderDetails = anyType的{ID = 13092; NAME = pushie; URL = anyType的{}; SubjectType =文件夹; }; FileFolderDetails = anyType的{ID = 13096; NAME = Jarnail_Testing; URL = anyType的{}; SubjectType =文件夹; }; FileFolderDetails = anyType的{ID = 13099; NAME = amarjeet; URL = anyType的{}; SubjectType =文件夹; }; FileFolderDetails = anyType的{ID = 13101; 名称= Kaam; URL = anyType的{}; SubjectType =文件夹; }; FileFolderDetails = anyType的{ID = 13103; NAME = tajmehal; URL = anyType的{}; SubjectType =文件夹; }; FileFolderDetails = anyType的{ID = 13105; NAME =文本区域; URL = anyType的{}; SubjectType =文件夹; }; FileFolderDetails = anyType的{ID = 13107; NAME = TextArea1; URL = anyType的{}; SubjectType =文件夹; }; FileFolderDetails = anyType的{ID = 13109; NAME = TextArea2; URL = anyType的{}; SubjectType =文件夹; }; FileFolderDetails = anyType的{ID = 13115; NAME = TextArea3; URL = anyType的{}; SubjectType =文件夹; }; FileFolderDetails = anyType的{ID = 13121; NAME = TextArea5; URL = anyType的{}; SubjectType =文件夹; }; FileFolderDetails = anyType的{ID = 13124; Name = Check Char; URL = anyType的{}; SubjectType =文件夹; }; FileFolderDetails = anyType的{ID = 13128; NAME = amitestinggggg; URL = anyType的{}; SubjectType =文件夹; }; FileFolderDetails = anyType的{ID = 13132; 名称= KKK; URL = anyType的{}; SubjectType =文件夹; }; FileFolderDetails = anyType的{ID = 13136; NAME = hhhhhhhhhhhhhhhhhh; URL = anyType的{}; SubjectType =文件夹; }; FileFolderDetails = anyType的{ID = 13140; NAME = ravitevffvvgfdcvgbgvf; URL = anyType的{}; SubjectType =文件夹; }; FileFolderDetails = anyType的{ID = 13144; NAME = DMS3.0_Title_Page; URL = anyType的{}; SubjectType =文件夹; }; FileFolderDetails = anyType的{ID = 20; NAME = office.jpg; URL = InterLogicsMobile /图像/ Tulips.jpg; SubjectType =文件; }; FileFolderDetails = anyType的{ID = 21; NAME = Capture.PNG; URL = InterLogicsMobile /图像/ Tulips.jpg; SubjectType =文件; }; FileFolderDetails = anyType的{ID = 22; NAME = groups.jpg; URL = InterLogicsMobile /图像/ Tulips.jpg; SubjectType =文件; }; FileFolderDetails = anyType的{ID = 23; NAME = Capture1.PNG; URL = InterLogicsMobile /图像/ Tulips.jpg; SubjectType =文件; }; FileFolderDetails = anyType的{ID = 99; NAME = Content4Work.pdf; URL = InterLogicsMobile /图像/ Tulips.jpg; SubjectType =文件; }; FileFolderDetails = anyType的{ID = 109; NAME = Rohit.docx; URL = InterLogicsMobile /图像/ Tulips.jpg; SubjectType =文件; }; FileFolderDetails = anyType的{ID = 115; NAME = Chrysanthemum.jpg; URL = InterLogicsMobile /图像/ Tulips.jpg; SubjectType =文件; }; FileFolderDetails = anyType的{ID = 123; 名称= DMS_Drag_and_Drop(2).DOC; URL = InterLogicsMobile /图像/ Tulips.jpg; SubjectType =文件; }; FileFolderDetails = anyType的{ID = 124; NAME = Tulips.jpg; URL = InterLogicsMobile /图像/ Tulips.jpg; SubjectType =文件; }; FileFolderDetails = anyType的{ID = 125; NAME = Jellyfish.jpg; URL = InterLogicsMobile /图像/ Tulips.jpg; SubjectType =文件; }; FileFolderDetails = anyType的{ID = 126; NAME = Koala.jpg; URL = InterLogicsMobile /图像/ Tulips.jpg; SubjectType =文件; }; FileFolderDetails = anyType的{ID = 127; NAME = Lighthouse.jpg; URL = InterLogicsMobile /图像/ Tulips.jpg; SubjectType =文件; }; FileFolderDetails = anyType的{ID = 128; NAME = Jellyfish.jpg; URL = InterLogicsMobile /图像/ Tulips.jpg; SubjectType =文件; }; FileFolderDetails = anyType的{ID = 129; NAME = Jellyfish.jpg; URL = InterLogicsMobile /图像/ Tulips.jpg; SubjectType =文件; }; FileFolderDetails = anyType的{ID = 130; NAME = Jellyfish.jpg; URL = InterLogicsMobile /图像/ Tulips.jpg; SubjectType =文件; }; FileFolderDetails = anyType的{ID = 131; NAME = Jellyfish.jpg; URL = http 03-19 10:59:08.917:I/System.out(789):41 03-19 10:59:09.527:D/dalvikvm(789):GC_CONCURRENT释放571K,9%免费8012K/8711K,暂停23ms + 26ms 03-19 10:59:12.787:D/dalvikvm(789):GC_FOR_ALLOC释放11K,5%免费8352K/8711K,暂停49ms 03-19 10:59:12.857:D/dalvikvm(789):GC_FOR_ALLOC释放1K,3%免费8712K/8967K,暂停50ms 03-19 10:59:12.937:D/dalvikvm(789):GC_FOR_ALLOC释放<1K,4%免​​费9163K/9479K,暂停48ms 03-19 10:59:15.427: I/System.out(789):13003 03-19 10:59:15.427:I/DocumentID(789):13003 03-19 10:59:15.837:D/dalvikvm(789):GC_CONCURRENT释放328K,5%免费9581K/10055K,暂停23MS + 5ms的一十月3日至19日:59:15.867:I/DocumentResponse(789):/ geyVwPbejDGlPag9ahNrPG8LkPZyH5kZ/v17​​x1KS6qhpVq9kMAy7/vMCzOD0UqX0QI8KmtS1k96LAIjbabMLGWv08f4lkUYhMlEaQ2kbA3IRsPLi8F07QAjqjaYsiIEd8c5ygK0wMQ6MHSSW69FoFs/407IDzEDft3r3XBpTQAT4lBpsOHgAXIxL0M0XtHjmsRDiSy6r1 + svFImnCuVFIFI + cJk31zirUNClZt3sFAOrwiD8VaH6uSwwbbumaLxKoNoInx4Epow + NL6jGdWzjX1kByXaeG0ea4kNPWVmvNWAiJlrsukOdFCmR3/QQ4M6xLw7ylq3RP t31QoxnkOkj52dx4a46rppLbYq + 12gxAopFNMvv6CcVfouFXuRFjC + 8U/UeyJd4LkNBpT8V7CCYn/MIxGuhMi0LwD31z7Z3NsZI5Z0mRMvHVI + 8P/ou3dgqiqYxo5Bz4oaFZE24g1jrR7zu4Pqu2WQdbizTfbdPgJAAD // + ImYzsKNchci + VLqQHEkJU4 + RzBv1jKu6vsf0VwOamabaWQ1pZ + 9AtcdYNl/WDl03Gn4KZu/Yy4kVyAdhb9kuYipsScZyjWop9SwabDDPJZ2RYqwKNuBpotX1RP9fi46FLAmhCYnP83x1nANaXg902aJ5x687HyFZLBZ9e/tDg7MvaD4BAAD // wMAUEsDBBQABgAIAAAAIQB8O5c5IgEAALkDAAAcAAgBd29yZC9fcmVscy9kb2N1bWVudC54bWwucmVscyCiBAEooAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKyTTU + EMBCG7yb + B9K7FFZdjdmyFzXZq67x3C1TaISWdMYP/r0VswrKogcuTWaavs/TSbtav9VV9AIejbOCpXHCIrDK5cYWgj1sb08uWYQkbS4rZ0GwFpCts + Oj1R1UksIhLE2DUUixKFhJ1FxxjqqEWmLsGrBhRztfSwqlL3gj1ZMsgC + SZMl9P4Nlg8xokwvmN/kpi7ZtE8h/ZzutjYJrp55rs DSC4AhE4WYYMqUvgATbd + Lgyfi4wuKAQm2Ud + g0xcrV/JP + Qb0YXowjtRXgo6HyRmtQ1Mf/3JrySA94jIz5H6PoyL1BdPUUfjknnsILgW96V/JuTacczud00M7SVu6qnsdXa0ribE6JV9jd/3qVveZehA8 + XPYOAAD // wMAUEsDBBQABgAIAAAAIQDppZXbCQMAAG8LAAARAAAAd29yZC9kb2N1bWVudC54bWzMVltv2jAUfp + 0/+ 2DlvSRQxlBUqLTBUB8mVWunPU4mcRIL32QbMvbrd wkXBqgNH0ZSJA4Pt/5zuU7zt39H87QhmhDpZgE/V4UICISmVKRT4Kfz99uxgEyFosUMynIJNgSE9xPP364K + NUJmtOhEUAIUxcqmQSFNaqOAxNUhCOTY/TREsjM9tLJA9lltGEhKXUaTiI + PG/UlomxBjw9xWLDTZBDcfbaFIRAb4yqTm2pid1HnKsV2t1A + gKW7qkjNotYEejBkZOgrUWcU3oZkfImcQVofqvsdCtKE74rSxndQa8x1ATBhykMAVV + zC6okGIRUNpcymIDWfNvlL1hy1/u5CvqcFM4xJKsQdswZ1IRloZcVblwdV3X9WXiP3oUjB1RRzEjsM1FI59Nkw4pmIH0y01h8kFRbynvxdartWOjqLvQ3sQqx2WE + YbmEUjr7zD0MybAFrSfSqwIgHiSfyQC6nxkgGjsj9EriODKQyLpUy37l + hMoZhk/6YBFE0H4zGw3nQLM1IhtfM + ifjUXQ795bQSjKbaw277FYBrlGEsSeLtQ1CB6ndj53OuLkL3YX79WunLeciPbRz4yY2CieArDQxRG9IMEVXQbVJwNxbXWV6HQsYdUjTvLCo6yeRaoswY0ekIEGqXYwq5ZeLUeX6dM6aaYhMIUtznMHuHltFzDXm7cT/KohAqCRHcUKYL5vHWV + Xezfo0MMzogIJUqJUloJJnJL0TCma4/C4C7sHvpRy5Y43HytUhaYgDKcVgTn06 U + F/IKTVdXKzV6IbLcTtNHNuRfVsU5fa40OJr7/XlbnnLSz1H9fK643r6v7P8feM

Nir*_*mal 5

                    try {
                    ht.call(SOAP_ACTION, envelope);

                    final SoapPrimitive response = (SoapPrimitive) envelope.getResponse();
                    String str =DocumentResponse.toString();

                        byte[] decodedString = Base64.decode(str, Base64.DEFAULT);

                   File direct = new File(Environment.getExternalStorageDirectory() + "/Foldername");

                      if(!direct.exists())
                      {
                          direct.mkdir();
                      }

                    File photo=new File(Environment.getExternalStorageDirectory() + "/Foldername",Filename);


                  if (photo.exists())
                  {
                        photo.delete();
                  }

                  try {
                    FileOutputStream fos=new FileOutputStream(photo.getPath());

                    fos.write(decodedString);
                    fos.close();

                    ContentValues values= new ContentValues();

                  }
                  catch (java.io.IOException e) 
                  {
                    Log.e("PictureDemo", "Exception in photoCallback", e);
                  }
                }


                catch (Exception e) {
                e.printStackTrace();
            }
Run Code Online (Sandbox Code Playgroud)

将您的String转换为Base64解码.

示例:byte [] decodingString = Base64.decode(str,Base64.DEFAULT);

使用该字节将文件保存在SD卡中.

例如:fos.write(decodedString);