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

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


需要的解决方案是,当 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();

    } 

  }    

}


繁星淼淼
浏览 154回答 1
1回答

翻过高山走不出你

不要将 - 方法误认为append是BufferedWriter附加内容到文件中。它实际上附加到给定的作者。要实际将其他内容附加到文件中,您需要在打开文件编写器时指定。FileWriter有一个额外的构造函数参数允许指定:new FileWriter("D://Author.html", /* append = */ true)您甚至可能对Java Files API感兴趣,因此您可以不用实例化您自己的APIBufferedWriter等: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);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java