从网络读取数据
Reading Data from the Web
我需要阅读 http://cs.armstrong.edu/liang/data/Lincoln.txt 上的字数。我编写了我的程序,NetBeans 没有给我任何错误。然而,程序似乎是无限的。它并没有停止尝试执行,最终没有给出答案(甚至没有计算出来,我不确定)。下面是代码。
import java.net.*;
import java.util.Scanner;
import java.io.IOException;
public class readDataFromWeb {
public static void main(String[] args) {
try {
URL url = new URL("http://cs.armstrong.edu/liang/data/Lincoln.txt");
int wordCount = 0;
Scanner input = new Scanner(url.openStream());
while(input.hasNext()) {
wordCount++;
}
System.out.println(url + " has " + wordCount + " words.");
}
catch (MalformedURLException ex) {
System.out.println("Invalid URL");
}
catch (IOException ex) {
System.out.println("I/O Errors: No such file");
}
}
}
我的印象是,首先声明类型 URL 的变量 url 并将其设置为 http://cs.armstrong.edu/liang/data/Lincoln.txt。这是我哪里出错了吗?我输入的内容不正确吗?如有必要,我可以提供更多信息。也欢迎任何风格或概念上的见解;我正在尝试学习。谢谢!
你从未真正从扫描仪上读过任何文字。 hasNext
returns true 因为有一个词你可以读...但你从未真正读过它,所以它一直准备好供你阅读,所以 hasNext
一直返回 true。
只需在循环内调用 input.next()
。
我需要阅读 http://cs.armstrong.edu/liang/data/Lincoln.txt 上的字数。我编写了我的程序,NetBeans 没有给我任何错误。然而,程序似乎是无限的。它并没有停止尝试执行,最终没有给出答案(甚至没有计算出来,我不确定)。下面是代码。
import java.net.*;
import java.util.Scanner;
import java.io.IOException;
public class readDataFromWeb {
public static void main(String[] args) {
try {
URL url = new URL("http://cs.armstrong.edu/liang/data/Lincoln.txt");
int wordCount = 0;
Scanner input = new Scanner(url.openStream());
while(input.hasNext()) {
wordCount++;
}
System.out.println(url + " has " + wordCount + " words.");
}
catch (MalformedURLException ex) {
System.out.println("Invalid URL");
}
catch (IOException ex) {
System.out.println("I/O Errors: No such file");
}
}
}
我的印象是,首先声明类型 URL 的变量 url 并将其设置为 http://cs.armstrong.edu/liang/data/Lincoln.txt。这是我哪里出错了吗?我输入的内容不正确吗?如有必要,我可以提供更多信息。也欢迎任何风格或概念上的见解;我正在尝试学习。谢谢!
你从未真正从扫描仪上读过任何文字。 hasNext
returns true 因为有一个词你可以读...但你从未真正读过它,所以它一直准备好供你阅读,所以 hasNext
一直返回 true。
只需在循环内调用 input.next()
。