Java 使用jsoup将控制台输出写入文本文件
我想将控制台输出写入一个文本文件,但不知怎的,它只向我的文本文件写入一行。我是Java新手。我不明白代码中的Java 使用jsoup将控制台输出写入文本文件,java,Java,我想将控制台输出写入一个文本文件,但不知怎的,它只向我的文本文件写入一行。我是Java新手。我不明白代码中的p,请帮助我 这是我的密码: package htmlparser; import java.io.IOException; import java.util.logging.*; import org.jsoup.*; import org.jsoup.nodes.*; import org.jsoup.select.*; import java.io.FileWrite
p
,请帮助我
这是我的密码:
package htmlparser;
import java.io.IOException;
import java.util.logging.*;
import org.jsoup.*;
import org.jsoup.nodes.*;
import org.jsoup.select.*;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.io.File;
import java.io.*;
public class Htmlparser {
public static void main(String[] args) {
try {
String url = "http://cell-phone-providers-review.toptenreviews.com/cingular-review.html";
Document doc = Jsoup.connect(url).get();
Elements paragraphs = doc.select("p");
for(Element p : paragraphs)
System.out.println(p.text());
PrintWriter out = new PrintWriter(new FileWriter("C:/Users/Desktop/outputtext.txt"));
out.print(System.in);
out.close();
}
catch (IOException ex) {
Logger.getLogger(Htmlparser.class.getName())
.log(Level.SEVERE, null, ex);
}
}
}
您正在for循环中打开文件,因此每次重写文件时,只写入最近的一行。在for循环外部打开文件,然后在循环结束后将其关闭
public static void main(String[] args) {
try {
String url = "http://cell-phone-providers-review.toptenreviews.com/cingular-review.html";
Document doc = Jsoup.connect(url).get();
Elements paragraphs = doc.select("p");
PrintWriter out = new PrintWriter(new FileWriter("C:/Users/Desktop/outputtext.txt"));
for(Element p : paragraphs) {
out.print(p.text());
}
out.close();
} catch (IOException ex) {
Logger.getLogger(Htmlparser.class.getName()).log(Level.SEVERE, null, ex);
}
}
循环周围没有任何大括号,因此此语句是循环内唯一调用的语句
System.out.println(p.text());
在进入循环之前创建
PrintWriter
,并使用out.print(System.in)
将控制台输出写入文件 我试过圈外的打印机。仍然不是预期的结果。print(System.in)
的输出应该是什么?@user3062229如上所述,在进入循环之前创建PrintWriter
,然后在循环中使用out.print(System.in)
,并记住添加大括号{}
元素段落=doc。选择(“p”);PrintWriter out=新的PrintWriter(新的文件编写器(“C:/Users/Chenfei/Desktop/outputtext.txt”);输出打印(系统输入);out.close();对于(元素p:段落)System.out.println(p.text());}这就是你的意思吗?我有点困惑,因为它仍然没有给我预期的输出。不工作。谢谢你。它只给出一行“java.io”。BufferedInputStream@2e15df3f“这是因为您正在将object System.in写入文件,而不是段落的文本。