I am getting an .pdf file from a chat and I want to download it and display it using acrobat reader. Following is my code

```
 public void showPDF(String pdf)
        {
            try
            {
                Log.i("pic", "  * * * in showPdf" + pdf);

                String extStorageDirectory = Environment.getExternalStorageDirectory().toString();
                File folder = new File(extStorageDirectory, "pdf");
                folder.mkdir();
                String pdf_name = pdf.replace(".pdf", "");
                pdf_name = pdf_name.replace("/fileupload/data/chat/", "");
                File file = new File(folder, pdf_name + ".pdf");
                try
                {
                    file.createNewFile();
                }
                catch (IOException e1)
                {
                    e1.printStackTrace();
                }
                Log.i("pic", "  * * * ready to download");
                new DownloadFile(file, Functions.getServiceProtocol() + Functions.getServiceDomain() + pdf, pdf_name).execute();
            }
            catch (Exception e)
            {
                Log.i("pic", " CATCH * * * in showPdf");
            }
        }
      } 

  private class DownloadFile extends AsyncTask<String, Integer, String>
        {
            private String fileURL, pdfname;
            private File directory;
            private ProgressDialog dlg = new ProgressDialog(CameraWebview.this);

            public DownloadFile(File d, String f, String n)
            {
                directory = d;
                fileURL = f;
                pdfname = n;
            }

            @Override
            protected String doInBackground(String... sUrl)
            {
                try
                {
                    Log.i("pic", " TRY * * * download file");
                    FileOutputStream f = new FileOutputStream(directory);
                    URL u = new URL(fileURL);
                    HttpURLConnection c = (HttpURLConnection)u.openConnection();
                    c.setRequestMethod("GET");
                    c.setDoOutput(true);
                    c.connect();

                    InputStream in = c.getInputStream();

                    byte[] buffer = new byte[1024];
                    long total = 0;
                    int count;

                    while ((count = in.read(buffer)) != -1) {
                        total += count;
                        f.write(buffer, 0, count);
                    }

                    f.flush();
                    f.close();

                    try
                    {
                         Log.i("pic", " TRY * * * calling displayPdf");
                         displayPdf(pdfname);
                    }
                    catch(Exception ex)
                    {
                        Log.i("pic", " CATCH * * * calling displayPdf");
                    }
                }
                catch (Exception e)
                {
                }
                return null;
            }

            @Override
            protected void onPreExecute()
            {
                super.onPreExecute();
                dlg.setMessage("Downloading File ...");
                dlg.show();
            }

            @Override
            protected void onProgressUpdate(Integer... progress)
            {
                super.onProgressUpdate(progress);
                mProgressDialog.setProgress(progress[0]);
            }

            @Override
            protected void onPostExecute(String result)
            {
                super.onPostExecute(result);
                if (dlg.isShowing())
                    dlg.dismiss();
            }
        }

      public void displayPdf(String pdf_name)
        {
            try
            {
                Log.i("pic", " TRY * * * ready to show pdf");
                File file = new File(Environment.getExternalStorageDirectory() + "/pdf/" + pdf_name + ".pdf");
                PackageManager packageManager = getPackageManager();
               Intent testIntent = new Intent(Intent.ACTION_VIEW);
                testIntent.setType("application/pdf");
                List list = packageManager.queryIntentActivities(testIntent, PackageManager.MATCH_DEFAULT_ONLY);
                Intent intent = new Intent();
                intent.setAction(Intent.ACTION_VIEW);
                Uri uri = Uri.fromFile(file);
                intent.setDataAndType(uri, "application/pdf");
                startActivity(intent);
                Log.i("pic", " TRY * * * here is the pdf");
            }
            catch (Exception e)
            {
                Log.i("pic", " CATCH * * * show pdf file" + e.toString());
            }

```

It always say "Corrupted file". I checked the url I am using for it and it's fine. Also my app is Ice Cream Sandwitch. What am I doing wrong ?