在当今快节奏的生活中,出行前了解航班动态和状态变得尤为重要。Java作为一种广泛使用的编程语言,可以用来轻松查询航班号,获取航班信息。本文将为您介绍如何使用Java实现这一功能。
1. 获取航班数据
首先,我们需要获取航班数据。以下是一些常用的航班数据来源:
- 航空公司官网:许多航空公司提供API接口,可以查询航班信息。
- 第三方航班数据服务:如FlightAware、Aviation Stack等,提供丰富的航班数据。
以下是一个简单的示例,展示如何从航空公司官网获取航班信息:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class FlightInfoFetcher {
public static String getFlightInfo(String flightNumber) {
try {
String apiUrl = "http://example.com/api/flight/" + flightNumber;
URL url = new URL(apiUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
int responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
return response.toString();
} else {
return "Failed to fetch flight info";
}
} catch (Exception e) {
return "Error occurred while fetching flight info";
}
}
public static void main(String[] args) {
String flightNumber = "AA123";
String flightInfo = getFlightInfo(flightNumber);
System.out.println("Flight info for " + flightNumber + ": " + flightInfo);
}
}
2. 解析航班信息
获取到航班信息后,我们需要将其解析成可读的格式。以下是一个简单的JSON解析示例:
import org.json.JSONObject;
public class FlightInfoParser {
public static String parseFlightInfo(String json) {
JSONObject jsonObject = new JSONObject(json);
String flightNumber = jsonObject.getString("flightNumber");
String departureAirport = jsonObject.getString("departureAirport");
String arrivalAirport = jsonObject.getString("arrivalAirport");
String status = jsonObject.getString("status");
return "Flight Number: " + flightNumber + "\n" +
"Departure Airport: " + departureAirport + "\n" +
"Arrival Airport: " + arrivalAirport + "\n" +
"Status: " + status;
}
public static void main(String[] args) {
String json = "{\"flightNumber\":\"AA123\",\"departureAirport\":\"LAX\",\"arrivalAirport\":\"JFK\",\"status\":\"ON TIME\"}";
String parsedInfo = parseFlightInfo(json);
System.out.println(parsedInfo);
}
}
3. 获取实时航班状态
为了获取实时航班状态,我们可以在程序中设置定时任务,定期查询航班信息。以下是一个简单的示例:
import java.util.Timer;
import java.util.TimerTask;
public class FlightStatusUpdater {
public static void main(String[] args) {
Timer timer = new Timer();
TimerTask task = new TimerTask() {
@Override
public void run() {
String flightNumber = "AA123";
String flightInfo = getFlightInfo(flightNumber);
System.out.println("Flight info for " + flightNumber + ": " + flightInfo);
}
};
timer.scheduleAtFixedRate(task, 0, 60000); // 每分钟查询一次
}
}
通过以上步骤,您可以使用Java轻松查询航班号,快速了解航班动态及状态。当然,实际应用中可能需要根据具体需求调整代码。希望本文对您有所帮助!
