title: downloading a file between 1MB and 2MB hangs
body: <p>working on my first real android app and one part of it is a download manager.</p>
  
  <p>it must download video files that the app uses to teach people Gaelic.</p>
  
  <p>it works fine on all but 3 files, it downloads bigger files and smaller files. but will not download colours.mp4 1.86MB, weekdays 1.53 MB or numbers 1.99 MB all the files between 1MB and 2MB.</p>
  
  <p>it will just stop at the end of the download loop no errors for a few minutes just looking like its waiting to continue downloading then it will give an error "unexpected end of stream"
  can anyone suggest what the problem could be please?</p>
  
  <p>I have crated the same app for the iPhone and that app has not got the same problem with these files.</p>
  
  <p>this is the download loop called from inside an asynctask.</p>
  
  <pre><code>protected void download(String where, String file){
  
          try {
          //makes output file 
          OutputStream output = new FileOutputStream(getFilesDir()
                  .getAbsolutePath() + "/vidos/" +file);
  
  
          int count=0;
  
          //gets url to download from
          URL url = new URL(where);
  
          URLConnection conection = url.openConnection();
          conection.connect();
  
          //gets the length of the file to work out percent downloaded 
          int lengthOfFile = conection.getContentLength();
  
          InputStream input = null;
          Log.v("downloading", String.valueOf(showprg));
          input = new BufferedInputStream(url.openStream());
          byte data[] = new byte[lengthOfFile];
          long total = 0;
          Log.v("downloading", "size: " + String.valueOf(downloading));
          while ((count = input.read(data)) &gt; 0 &amp;&amp; downloading) {
              total += count;
              publishProgress(String
                      .valueOf((int) ((total * 100) / lengthOfFile)));
              output.write(data, 0, count);
  
              //this is where it brakes
          };
          Log.v("publishProgress", "done");
          output.flush();
          output.close();
          input.close();
          } catch (Exception e) {
              Log.e("Error: ", e.getMessage());
          }
      }
  </code></pre>