title: download large files using servlet
body: <p>I am using Apache Tomcat Server 6 and Java 1.6 and am trying to write large mp3 files to the ServletOutputStream for a user to download. Files are ranging from a 50-750MB at the moment.</p>
  
  <p>The smaller files aren't causing too much of a problem but with the larger files it and getting socket exception broken pipe.</p>
  
  <pre><code>File fileMp3 = new File(objDownloadSong.getStrSongFolder() + "/" + strSongIdName);
  FileInputStream fis = new FileInputStream(fileMp3);
  response.setContentType("audio/mpeg");
  response.setHeader("Content-Disposition", "attachment; filename=\"" + strSongName + ".mp3\";");
  response.setContentLength((int) fileMp3.length());
  OutputStream os = response.getOutputStream();
  
  try {
      int byteRead = 0;
      while ((byteRead = fis.read()) != -1) {
          os.write(byteRead);
      }
      os.flush();
  } catch (Exception excp) {
      downloadComplete = "-1";
      excp.printStackTrace();
  } finally {
      os.close();
      fis.close();
  }
  </code></pre>