我正在尝试使用以下代码来使用java编辑html页面。
package com.XXX.xxx.xxx
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class HTMLReading {
/**
* @param args
*/
public static void main(String[] args) {
StringBuilder contentBuilder = new StringBuilder();
try {
BufferedReader in = new BufferedReader(new FileReader("C:\\ItemDetails.html"));
String str;
while ((str = in.readLine()) != null) {
if(str.equals("<div id=\"row2\" style=\"display:none;\" ><ul>")) {
// add following lines to html
//<li><b>Comments</b></li><ul><li>Testing for comment</li></ul>
}
System.out.println(str);
}
in.close();
} catch (IOException e) {
}
}
}
在读取特定线条时,我想在html中添加一些新行。
//<li><b>Comments</b></li><ul><li>Testing for comment</li></ul>
我尝试了追加,但它在最后添加了行,而不是在我想要的地方。
我的要求是我必须只为此使用JAVA。
任何想法!
答案 0 :(得分:0)
您可以使用Java.io.BufferedWriter.newLine()方法。
这是非静态方法,你可以在这里找到一些文档:
http://www.tutorialspoint.com/java/io/bufferedwriter_newline.htm
另外,
你最好使用StringBuffer而不仅仅是String,因为它是一个不可变的对象,如:
StringBuffer sb = new StringBuffer();
sb.append ("<br>blabla<br>");
答案 1 :(得分:0)
您可以尝试这样的事情:
String str;
StringBuilder contentBuilder = new StringBuilder();
while ((str = in.readLine()) != null) {
if(str.equals("<div id=\"row2\" style=\"display:none;\" ><ul>")) {
contentBuilder.append("add your content" + str);
}
else
{
contentBuilder.append(str);
}
System.out.println(str);
}
您可以将其存储在String中,然后将combined
写入文件中。
答案 2 :(得分:0)
新行在Java中表示为“\ n”。听起来您希望StringBuilder包含原始文件的内容以及您描述的其他行。为了实现这一点,您的代码可能如下所示:
public static void main(String[] args) {
StringBuilder contentBuilder = new StringBuilder();
try (BufferedReader in = new BufferedReader(new FileReader("C:\\ItemDetails.html"))) {
String str;
while ((str = in.readLine()) != null) {
contentBuilder.append(str);
if (str.equals("<div id=\"row2\" style=\"display:none;\" ><ul>")) {
contentBuilder.append("\n<li><b>Comments</b></li><ul><li>Testing for comment</li></ul>\n);
}
}
} catch (IOException e) {
}
System.out.println(contentBuilder.toString());
}