gpt4 book ai didi

java - Jsoup java重写它应该添加的文件字符串

转载 作者:行者123 更新时间:2023-12-02 09:55:42 24 4
gpt4 key购买 nike

应该读取 html 文件并将结果写入另一个文件的代码,缓冲编写器会写入该文件,但当使用不同的 urllit 运行代码时,不会附加而是重写文件,并且先前的内容会消失

所需的解决方案是,当 jsoup 迭代新的 html 时,结果应添加到输出文件而不是重写

更改了缓冲写入器以外的不同写入器类型

public class WriteFile 
{
public static void main(String args[]) throws IOException
{
String url = "http://www.someurl.com/registers";
Document doc = Jsoup.connect(url).get();
Elements es = doc.getElementsByClass("a_code");

for (Element clas : es)
{
System.out.println(clas.text());
BufferedWriter writer = new BufferedWriter(new FileWriter("D://Author.html"));
writer.append(clas.text());
writer.close();
}
}
}

最佳答案

不要弄错append -BufferedWriter的方法将内容附加到文件中。它实际上附加到给定的作者。

要实际将附加内容附加到文件中,您需要在打开文件编写器时指定。 FileWriter有一个额外的构造函数参数允许指定:

new FileWriter("D://Author.html", /* append = */ true)

您甚至可能对 Java Files API 感兴趣相反,这样您就可以腾出实例化您自己的 BufferedWriter 等:

Files.write(Paths.get("D://Author.html"), clas.text().getBytes(), StandardOpenOption.CREATE, StandardOpenOption.APPEND);

您的循环和您正在编写的内容可以进一步简化为如下所示(如果有意义的话,您甚至可以再次省略 APPEND-open 选项):

Files.write(Paths.get("D://Author.html"), 
String.join("" /* or new line? */,
doc.getElementsByClass("a_code")
.eachText()
).getBytes(),
StandardOpenOption.CREATE, StandardOpenOption.APPEND);

关于java - Jsoup java重写它应该添加的文件字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56026055/

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