使用java、EclipseKepler读取文本文件

使用java、EclipseKepler读取文本文件,java,jsp,bufferedreader,eclipse-kepler,Java,Jsp,Bufferedreader,Eclipse Kepler,我是Java新手,目前在EclipseKepler工作。我有一个JSP页面,从中我正在读取一个文本文件,该文件正在使用shell脚本连续编写 <b> <% String filePath = "/home/default/test.txt"; BufferedReader reader = new Buffere

我是Java新手,目前在EclipseKepler工作。我有一个JSP页面,从中我正在读取一个文本文件,该文件正在使用shell脚本连续编写

                <b>
                    <%
                        String filePath = "/home/default/test.txt";
                        BufferedReader reader = new BufferedReader(new FileReader(filePath));
                        StringBuilder sb = new StringBuilder();
                        String line;

                        while((line = reader.readLine()) != "Success"){
                            sb.append(line+"\n");
                            out.println(sb.toString());
                        }                       
                    %>
                </b>

我需要逻辑来一直读取日志,直到它读取最后的“Success”字符串,直到它没有读取为止,它不应该打印任何空行

如何解决它?

试试这个:

while(!(line = reader.readLine()).equals("Success")) {
    if (line.trim().length() != 0) {
       out.println(line+"\n");
    }
}
直接传递到
输出
流。StringBuilder的使用在这里并不明显。

正如epoch所说,“!=”与“equals()”不同。如果要比较
字符串
,请始终使用“equals()”


您可以通过以下方式实现:

while ((line = reader.readLine()) != null) {
            if (line.trim().length() == 0) {
                continue;
            }

            if (line.equals("Success")) {
                break; 
            } else {
                // perform required operation
            }

  }

“!=”!=“.equals()”
我理解,但这段代码会等到找到“Success”字符串,因为在此之前我不想退出循环。如果代码找到“Success”,它将退出循环。否则,它将打印出任何非空行。@user728630当然会,因为在它找到成功字符串之前,它将停留在循环中,并且line变量每次都会得到不同的值,这是文本文档的下一行。更重要的是,最好使用.equals()方法比较该行。
while ((line = reader.readLine()) != null) {
            if (line.trim().length() == 0) {
                continue;
            }

            if (line.equals("Success")) {
                break; 
            } else {
                // perform required operation
            }

  }