我是Java的新手,我目前在Eclipse Kepler工作。我有一个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>
我需要逻辑来继续阅读日志,直到它读到最终的&#34;成功&#34;字符串,直到它没有,它不应该打印任何空行。
如何解决?
答案 0 :(得分:2)
你可以这样做:
while ((line = reader.readLine()) != null) {
if (line.trim().length() == 0) {
continue;
}
if (line.equals("Success")) {
break;
} else {
// perform required operation
}
}
答案 1 :(得分:1)
正如epoch所说,“!=”与“equals()”不同。如果您要比较Strings
,请始终使用“equals()”。
while(!(line = reader.readLine()).equals("Success")) {...}
答案 2 :(得分:0)
试试这个:
while(!(line = reader.readLine()).equals("Success")) {
if (line.trim().length() != 0) {
out.println(line+"\n");
}
}
line
直接传递给out
流。 StringBuilder的使用在这里并不明显。