Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.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_Ftp - Fatal编程技术网

Java 如果连接到FTP服务器,则执行其他操作

Java 如果连接到FTP服务器,则执行其他操作,java,ftp,Java,Ftp,所以我试着做一些类似的事情: If connected do something on ftp files; else do something on local files; 我试着这样做: public boolean checkConnection() { boolean answer = client.isConnected(); if (answer) { return true; } else { return f

所以我试着做一些类似的事情:

If connected
   do something on ftp files;
else
   do something on local files;
我试着这样做:

public boolean checkConnection() {
    boolean answer = client.isConnected();
    if (answer) {
        return true;
    } else {
        return false;
    }
}

if (ftpConnection.checkConnection()) {
    System.out.println("Connected!");
} else {
    System.out.println("Not connected.");
}

当我使用连接到FTP服务器的版本时,我已经连接了。但当我运行其他版本时,我有RuntimeException。有人可能知道如何解决我的问题了?

对我来说,听起来你的客户端在无法连接到服务器时会返回RunTimeException,所以你可能会添加一个try/catch块,如果抛出异常,检查异常是否说不能连接并返回false

你可以使用状态设计模式,对于连接状态和未连接状态,使用不同的状态对象。大概是这样的:

 interface ConnectionState {
    public void doStuff();
 }

 private final ConnectionState FTP_CONNECTION_STATE = new ConnectionState() {
    @Override
    public void doStuff() {
       ... // do something on FTP files
    }
 };

 private final ConnectionState LOCAL_CONNECTION_STATE = new ConnectionState() {
    @Override
    public void doStuff() {
       ... // do something on local files
    }
 };

 private ConnectionState connectionState;

 public final void tryToConnect() {
    ....
    if (connected) {
       connectionState = FTP_CONNECTION_STATE;
    } else {
       connectionState = LOCAL_CONNECTION_STATE;
    }
 }

 public final void doStuff() {
    if (connectionState == null) {
       throw new IllegalStateException("tryToConnect() has not been called");
    }
    connectionState.doStuff();
 }

当我运行其他版本时意味着什么??你能发布你的RuntimeException吗?当我运行ftpConnection=null的版本时,我有java.lang.NullPointerException而不是not connected.ftpConnection=null将ftpConnection设置为null,到NullPointerException完全正常客户端是什么?你希望我能告诉你什么?什么是FTP连接。你希望checkConnection告诉你什么?什么是“其他版本”?他到底是干什么的?”我有RuntimeException是什么意思?问题是什么?