如何编辑/插入新行到html文件

时间:2015-01-16 18:18:44

标签: java

我正在尝试使用以下代码来使用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。

任何想法!

3 个答案:

答案 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());
}