使用java、EclipseKepler读取文本文件
我是Java新手,目前在EclipseKepler工作。我有一个JSP页面,从中我正在读取一个文本文件,该文件正在使用shell脚本连续编写使用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
<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
}
}