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是什么意思?问题是什么?