gpt4 book ai didi

java - 使用 java.util.Scanner 将网站数据读取到 Java 变量中

转载 作者:行者123 更新时间:2023-11-30 07:50:44 25 4
gpt4 key购买 nike

我正在尝试从网址获取数据并将其转储到“content”实例变量中。 urlcontent 都应该在构造函数中初始化。 hasNextLine()nextLine() 也参与其中,但对于 Java 来说是全新的,我无法理解这一点。代码如下:

public class NewsFinder {

// Instance variables
private String url;
private String content;
private Scanner s;

// Getter methods
public String getUrl() {
return url;
}

public String getContent() {
return content;
}

// Constructor
public NewsFinder(String url) {
this.url = url;

try {
Scanner s = new Scanner(new URL(url).openStream());
if (s.hasNextLine()) {
this.s = s.nextLine();

}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public boolean isInNews(Object o) {
if (((String) o).contains(content)) {
return true;
} else {
return false;
}
}

有什么建议吗?

最佳答案

Scanner s = new Scanner(new URL(url).openStream());
if (s.hasNextLine()) {
this.s = s.nextLine();
}

从逻辑上讲,这部分代码应该替换为:

Scanner s = new Scanner(new URL(url).openStream());
while (s.hasNextLine()) {
this.s += s.nextLine();
}
<小时/>

就个人而言,我会使用 InputStream和一个BufferedReader来实现这一目标。

示例

URL url; InputStream is; BufferedReader br; String line; StringBuilder sb;
try{
url = new URL("http://stackoverflow.com");
is = url.openStream();
br = new BufferedReader(new InputStreamReader(is));
sb = new StringBuilder();

while ((line = br.readLine()) != null){
sb.append(line);
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(is != null){
is.close();
}catch(Exception e){
e.printStackTrace();
}
}
<小时/>

关于java - 使用 java.util.Scanner 将网站数据读取到 Java 变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33379761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com