从FTP下载文件

时间:2013-07-25 08:11:11

标签: java timer ftp

我有一个应用程序,每3分钟从FTP服务器下载文件,然后阅读它。 我的问题是这个FTP传输只在第一次启动应用程序时工作,当计时器下次运行此方法时,应用程序崩溃。 以下是我使用计时器

调用方法的方法
    Timer t2 = new Timer(180000, new ClockListener2());
    t2.start();

然后

   public class ClockListener2 implements ActionListener {
    public void actionPerformed(ActionEvent ae) {
    downloadFtp();
    }

现在是FTP传输方法

public void downloadFtp() {
    FTPClient client = new FTPClient();
    FileOutputStream fos = null;
    try {
        client.connect("192.168.1.102");
        client.login("anonymous", "");
        String filename = "text.txt";
        fos = new FileOutputStream(filename);
        client.retrieveFile("/" + filename, fos);
        client.logout();
        client.disconnect();
        if (fos != null) {
            fos.close();}
    } catch (Exception e) {
        e.printStackTrace();
    }
    }
之前有人遇到过这个问题吗?可能有什么不对?

感谢。

1 个答案:

答案 0 :(得分:1)

您可以将设备与ADB连接,以查看设备打印的日志(请参阅logcat)。如果您的应用程序崩溃,您将看到一些FATAL异常跟踪(它通常非常有用),例如:

07-24 09:33:59.285: ERROR/AndroidRuntime(4858): FATAL EXCEPTION: main
    java.lang.NullPointerException
    at ***.daifan.activity.***Activity.onCreateOptionsMenu(***ListActivity.java:96)
    at android.support.v4.app.Watson.onCreatePanelMenu(Watson.java:44)
    at com.actionbarsherlock.ActionBarSherlock.callbackCreateOptionsMenu(ActionBarSherlock.java:559)
    at com.actionbarsherlock.internal.ActionBarSherlockNative.dispatchCreateOptionsMenu(ActionBarSherlockNative.java:65)
    at com.actionbarsherlock.app.SherlockFragmentActivity.onCreatePanelMenu(SherlockFragmentActivity.java:165)
    at com.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:417)
    at com.android.internal.policy.impl.PhoneWindow.invalidatePanelMenu(PhoneWindow.java:768)
    at com.android.internal.policy.impl.PhoneWindow$1.run(PhoneWindow.java:3009)
    at android.os.Handler.handleCallback(Handler.java:605)
    at android.os.Handler.dispatchMessage(Handler.java:92)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:4514)
    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:993)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)
    at dalvik.system.NativeStart.main(Native Method)