title: converting string path to inputstream
body: <p>I am developing a chatting app using Quickblox chat API And currently have done user registration,authentication and basic peer to peer chat and group chat. now implementing video,image and file sending But have stuck up on some part. </p>
  
  <ol>
  <li><p>Selecting image from sd card. returns picture path in string and its not converting to inputStream. Have tried for about 10-15 answers on SOF. My code is as follows:</p>
  
  <pre><code>    Intent i = new Intent(Intent.ACTION_PICK,
              android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
  
      startActivityForResult(i, RESULT_LOAD_IMAGE);
  </code></pre>
  
  <p>protected void onActivityResult(int requestCode, int resultCode, Intent data) {
          super.onActivityResult(requestCode, resultCode, data);</p>
  
  <pre><code>if (requestCode == RESULT_LOAD_IMAGE &amp;&amp; resultCode == RESULT_OK &amp;&amp; null != data) {
  
  
      Uri selectedImage = data.getData();
      String[] filePathColumn = { MediaStore.Images.Media.DATA };
  
      Cursor cursor = getContentResolver().query(selectedImage,
              filePathColumn, null, null, null);
      cursor.moveToFirst();
  
      int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
      String picturePath = cursor.getString(columnIndex);
      cursor.close();
  
      Bitmap imagebitmap=BitmapFactory.decodeFile(picturePath);
  
      byte[] b=picturePath.getBytes(Charset.forName("UTF-8"));
  
      InputStream is = new ByteArrayInputStream(b);
  
      File newFile = FileHelper.getFileInputStream(is, "sample.jpg", "myFile");
  
      Boolean fileIsPublic = false;
  
      QBContent.uploadFileTask(newFile, fileIsPublic, null, new QBEntityCallbackImpl&lt;QBFile&gt;()
              {
          public void onSuccess(QBFile file, Bundle params) {
  
              //creating message
  
              QBChatMessage chatmessage=new QBChatMessage();
              chatmessage.setProperty("save_to_history", "1");    //saves messsage to history
  
              QBAttachment qbAttachment=new QBAttachment("photo");
              qbAttachment.setId(file.getId().toString());
  
              chatmessage.addAttachment(qbAttachment);
  
              try
              {
                  chat.sendMessage(chatmessage);
  
                  Toast.makeText(getApplicationContext(), "Image Uploaded Successfully", Toast.LENGTH_SHORT).show();
  
              } catch (XMPPException e) {
                  Log.e(TAG, "failed to send a image", e);
              } catch (SmackException sme){
                  Log.e(TAG, "failed to send a image", sme);
              }
  
          }
  
          public void onError(java.util.List&lt;String&gt; errors) {
  
              AlertDialog.Builder dialog = new AlertDialog.Builder(ChatActivity.this);
              dialog.setMessage("error when sending image: " + errors.toString()).create().show();
  
  
          };});}
  </code></pre></li>
  </ol>
  
  <p>have tried these codes too for generating inputstream</p>
  
  <ol>
  <li><p>InputStream is = new ByteArrayInputStream(picturePath.toString().getBytes(Charset.defaultCharset()));</p></li>
  <li><p><code>try {
              is = IOUtils.toInputStream(picturePath, "UTF-8");
          } catch (IOException e1) {
              // TODO Auto-generated catch block
              e1.printStackTrace();
          }</code></p></li>
  </ol>
  
  <p><img src="https://i.stack.imgur.com/HXZjJ.png" alt="content panel of quickblox shows this output... where size(kb) refers to static trial images i sent...and 1 kb size is dynamic images i selected.  "></p>
  
  <p>the code generates new sample.jpg in myfile folder. It doesn't create. its broken. but if i choose statically then it works perfectly. </p>
  
  <p>thank you in adv. don't know what i'm doing wrong...any help will be very much appreciable
  2. I am</p>