title: how to know the size of downloaded file before and after the download in android
body: <p>i m making an android app to download pdf files from android and then saving them in a folder in internal or external memory.but sometime due to bad internet connection download stops without finshing .like file size is 1.1mb and its only downloaded upto 750kb. now the problem is whether file fully download or not my app showing it as download but in real it is not.so i want to know the exact size of file befor and after download so that i can found whether file is completely download or not.and want to restart the download.
  can anybody help me........
  my code</p>
  
  <pre><code> String DownloadUrl = "http://www.example.com/books/"+book_name;
                              String fileName = book_name;
  
  
                              URL url = new URL(DownloadUrl);
  
  //create the new connection
  
  
  
  
  
                              HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
  
  //set up some things on the connection
  
                              urlConnection.setRequestMethod("GET");
  
                              urlConnection.setDoOutput(true);
  
  //and connect!
  
                              urlConnection.connect();
  
  //set the path where we want to save the file
  
  //in this case, going to save it on the root directory of the
  
  //sd card.
  
                             // File SDCardRoot = new File("/storage/emulated/0/documents/docx/stuff/");
  
                              File SDCardRoot = new File(Environment.getExternalStorageDirectory()+File.separator+"MybookStore/paper/paperStuff/documents/docx/other/stuff/");
  //create a new file, specifying the path, and the filename
  
  //which we want to save the file as.
  
                              File file = new File(SDCardRoot,fileName);
  
                              String file_size = Long.toString(file.length()/1024);
  
                              int size_file=Integer.parseInt(file_size);
  //this will be used to write the downloaded data into the file we created
  
                              FileOutputStream fileOutput = new FileOutputStream(file);
  
  //this will be used in reading the data from the internet
  
                              InputStream inputStream = urlConnection.getInputStream();
  
  //this is the total size of the file
  
                              int totalSize = urlConnection.getContentLength();
  
  //variable to store total downloaded bytes
  
                              int downloadedSize = 0;
  
  //create a buffer...
  
                              byte[] buffer = new byte[1024];
  
                              int bufferLength = 0; //used to store a temporary size of the buffer
  
  //now, read through the input buffer and write the contents to the file
  
                              while ( (bufferLength = inputStream.read(buffer)) &gt; 0 )
  
                              {
  
  //add the data in the buffer to the file in the file output stream (the file on the sd card
  
                                  fileOutput.write(buffer, 0, bufferLength);
  
  //add up the size so we know how much is downloaded
  
                                  downloadedSize += bufferLength;
  
                                  int progress=(int)(downloadedSize*100/totalSize);
  
  //this is where you would do something to report the prgress, like this maybe
  
  //updateProgress(downloadedSize, totalSize);
  
                              }
  </code></pre>
  
  
  
  <p>my code</p>