java为什么我总是遇到I/O异常?
我已经创建了代码来访问我下载的文件,但这不是作业想要的。它希望我使用这里给出的URL访问信息。我不知道为什么我总是收到IO异常
public static void main(String[] args) throws Exception{
int test = 0;
int sum = 0;
int i = 0;
try{
java.net.URL url = new java.net.URL("http://cs.armstrong.edu/liang/data/Scores.txt");
Scanner input = new Scanner(url.openStream());
while (input.hasNext()){
int score = input.nextInt();
sum += score;
i++;
}
}
catch(java.net.MalformedURLException ex){
ex.printStackTrace();
}
catch(java.io.IOException ex){
System.out.println("I/O Errors: no such file");
}
int avg = sum / i;
System.out.println("The average is: " + avg);
System.out.println("The sum is: " + sum);
}
STACKTRACE
java.net.SocketException: Invalid argument: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at sun.net.NetworkClient.doConnect(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.<init>(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at java.net.URL.openStream(Unknown Source)
at readfile.main(readfile.java:15)
线程“main”java中出现异常。lang.arithmetricexception:/by零 在readfile。main(readfile.java:30)
# 1 楼答案
代码完全正确。只需添加以下部分,即可在连接之前设置代理详细信息
并将下面的代码移到try catch块中,否则如果连接失败,您将得到
divide by zero
异常