應(yīng)該讀取 html 文件并將結(jié)果寫入另一個文件的代碼緩沖的寫入器寫入文件但是當(dāng)使用不同的 urlit 運(yùn)行代碼時不會附加而是重寫文件并且以前的內(nèi)容消失需要的解決方案是,當(dāng) jsoup 迭代新的 html 時,結(jié)果應(yīng)該添加到輸出文件而不是重寫更改了緩沖寫入器以外的不同寫入器類型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(); } } }
1 回答

翻過高山走不出你
TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個贊
不要將 - 方法誤認(rèn)為append
是BufferedWriter
附加內(nèi)容到文件中。它實(shí)際上附加到給定的作者。
要實(shí)際將其他內(nèi)容附加到文件中,您需要在打開文件編寫器時指定。FileWriter
有一個額外的構(gòu)造函數(shù)參數(shù)允許指定:
new FileWriter("D://Author.html", /* append = */ true)
您甚至可能對Java Files API感興趣,因此您可以不用實(shí)例化您自己的APIBufferedWriter
等:
Files.write(Paths.get("D://Author.html"), clas.text().getBytes(), StandardOpenOption.CREATE, StandardOpenOption.APPEND);
您的循環(huán)和您正在編寫的內(nèi)容可能會進(jìn)一步簡化為以下內(nèi)容(APPEND
如果有意義,您甚至可以再次省略 -open 選項(xiàng)):
Files.write(Paths.get("D://Author.html"), String.join("" /* or new line? */, doc.getElementsByClass("a_code") .eachText() ).getBytes(), StandardOpenOption.CREATE, StandardOpenOption.APPEND);
添加回答
舉報
0/150
提交
取消