Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从FTP下载文件_Java_Timer_Ftp - Fatal编程技术网

Java 从FTP下载文件

Java 从FTP下载文件,java,timer,ftp,Java,Timer,Ftp,我有一个应用程序,每3分钟从FTP服务器下载文件,然后读取它。 我的问题是,这个FTP传输只在应用程序启动的第一次工作,当计时器下次运行此方法时,应用程序崩溃。 下面是我如何使用计时器调用该方法 Timer t2 = new Timer(180000, new ClockListener2()); t2.start(); 然后 public class ClockListener2 implements ActionListener { public void a

我有一个应用程序,每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();
    }
    }
以前有人遇到过这个问题吗?有什么不对劲吗


谢谢。

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


e.printStackTrace()的输出是什么?您可以把它放在这里吗?您应该尝试在
finally
块中断开并关闭流,以确保在出现任何异常时将其清除。我也会使用
SwingWorker
而不是
javax.swing.Timer
java.util.Timer
如果它不是swing应用程序,我发现,应用程序在windows下运行没有任何问题,但在linux(Xubuntu)下会崩溃。两台机器上都有相同版本的java 1.7.0_25。这是Java运行时而不是代码中的问题吗?发布异常消息。这可能是由于应用程序无法覆盖该文件造成的。
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)