title: Downloading txt file from ftp server
body: <p>I'm trying to download a simple txt file from a FTP-Server for quite some time now.</p>
  
  <p>I'm using this code:</p>
  
  <pre><code> String server = "ftp.server.com";
      int port = 21;
      String user = "user";
      String pass = "pass";
  
      FTPClient ftpClient = new FTPClient();
      try {
  
          ftpClient.connect(server, port);
          ftpClient.login(user, pass);
          ftpClient.enterLocalPassiveMode();
          ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
  
          String remoteFile1 = "/test.txt";
          File downloadFile1 = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "test.txt");
          OutputStream outputStream1 = new BufferedOutputStream(new FileOutputStream(downloadFile1));
          boolean success = ftpClient.retrieveFile(remoteFile1, outputStream1);
          outputStream1.close();
  
          if (success) {
              System.out.println("File #1 has been downloaded successfully.");
          }
  
      } catch (IOException ex) {
          System.out.println("Error: " + ex.getMessage());
          ex.printStackTrace();
      } finally {
          try {
              if (ftpClient.isConnected()) {
                  ftpClient.logout();
                  ftpClient.disconnect();
              }
          } catch (IOException ex) {
              ex.printStackTrace();
          }
      }
  </code></pre>
  
  <p>But Android studio throws an error at me:</p>
  
  <pre><code>02-27 17:40:31.106  15373-15373/.upload_file_sample E/AndroidRuntime﹕ FATAL EXCEPTION: main
  android.os.NetworkOnMainThreadException
          at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1118)
          at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
          at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
          at java.net.InetAddress.getByName(InetAddress.java:289)
          at org.apache.commons.net.SocketClient.connect(SocketClient.java:203)
          at .upload_file_sample.MainActivity.DownloadDatabase(MainActivity.java:104)
          at .upload_file_sample.MainActivity$2.onClick(MainActivity.java:89)
          at android.view.View.performClick(View.java:4232)
          at android.view.View$PerformClick.run(View.java:17298)
          at android.os.Handler.handleCallback(Handler.java:615)
          at android.os.Handler.dispatchMessage(Handler.java:92)
          at android.os.Looper.loop(Looper.java:137)
          at android.app.ActivityThread.main(ActivityThread.java:4921)
          at java.lang.reflect.Method.invokeNative(Native Method)
          at java.lang.reflect.Method.invoke(Method.java:511)
          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027)
          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
          at dalvik.system.NativeStart.main(Native Method)
  </code></pre>
  
  <p>And I can't find out why. I doublechecked my FTP login data, but they are correct. I'm using the apache-commons-net library btw. Can anybody help me out here?</p>