5

In my application i'm trying to download XML file from server and storing it in SD card.For this i'm using following code..

        try {
               File root = android.os.Environment.getExternalStorageDirectory();               

               File dir = new File (root.getAbsolutePath() + "/project");
               if(dir.exists()==false) {
                    dir.mkdirs();
               }

               URL url = new URL("url"); //you can write here any link
               File file = new File(dir, name);

               long startTime = System.currentTimeMillis();
               Log.d("DownloadManager", "download begining");
               Log.d("DownloadManager", "download url:" + url);
               Log.d("DownloadManager", "downloaded file name:" + name);

               /* Open a connection to that URL. */
               URLConnection ucon = url.openConnection();

               /*
                * Define InputStreams to read from the URLConnection.
                */
               InputStream is = ucon.getInputStream();
               BufferedInputStream bis = new BufferedInputStream(is);

               /*
                * Read bytes to the Buffer until there is nothing more to read(-1).
                */
               ByteArrayBuffer baf = new ByteArrayBuffer(5000);
               int current = 0;
               while ((current = bis.read()) != -1) {
                  baf.append((byte) current);
               }



               /* Convert the Bytes read to a String. */
               FileOutputStream fos = new FileOutputStream(file);
               fos.write(baf.toByteArray());
               fos.flush();
               fos.close();
               Log.d("DownloadManager", "download ready in" + ((System.currentTimeMillis() - startTime) / 1000) + " sec");

       } catch (IOException e) {
           e.printStackTrace();
       }

this is giving me java.net.SocketException: The operation timed out exception...Please help me..I'm new to android development

Raj
  • 22,346
  • 14
  • 99
  • 142
android
  • 386
  • 1
  • 8
  • 21
  • Have you added **android.permission.INTERNET** in manifest.xml? If yes, check for internet connectivity in the device. – Kannan Suresh Jan 24 '12 at 12:02
  • try this link it may helps you http://stackoverflow.com/questions/4470457/java-net-socketexception-the-operation-timed-out-problem-in-android – Ajay Jan 24 '12 at 12:02

1 Answers1

4
public void DownloadFiles(){

    try {
        URL url = new URL("http://nodeload.github.com/nexes/Android-File-Manager/zipball/master");
        URLConnection conexion = url.openConnection();
        conexion.connect();
        int lenghtOfFile = conexion.getContentLength();
        InputStream is = url.openStream();
        File testDirectory = new File(Environment.getExternalStorageDirectory() + "/Folder");
        if (!testDirectory.exists()) {
            testDirectory.mkdir();
        }
        FileOutputStream fos = new FileOutputStream(testDirectory + "/zip.zip");
        byte data[] = new byte[1024];
        int count = 0;
        long total = 0;
        int progress = 0;
        while ((count = is.read(data)) != -1) {
            total += count;
            int progress_temp = (int) total * 100 / lenghtOfFile;
            if (progress_temp % 10 == 0 && progress != progress_temp) {
                progress = progress_temp;
            }
            fos.write(data, 0, count);
        }
        is.close();
        fos.close();
    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
Ashok Domadiya
  • 1,124
  • 13
  • 31
  • thanks for the code it's working fine. But the file which i'm getting is useless. You had provide the name "zip/zip" but i'm saving this "myxml.xml" for xml and upon changing the extension , it is showing to be corrupt – Sumit Sharma Dec 20 '12 at 09:33
  • have you changed the server address? If yes, then while writing it is getting corrupt because of connectivity is not proper. – Ankit Jun 24 '13 at 12:19