java面试题:读取文件中含有ERROR的行
public class LogsUtils {
private static final String LOG_PATH = "foshan.log";
public String readError() {
StringBuilder build = new StringBuilder();
InputStream is = null;
InputStreamReader isReader = null;
BufferedReader bufReader = null;
try {
// 读取相对路径下的文件
is = Thread.currentThread().getContextClassLoader()
.getResourceAsStream(LOG_PATH);
isReader = new InputStreamReader(is);
bufReader = new BufferedReader(isReader);
String line = null;
while ((line=bufReader.readLine()) != null) {
if (line.contains("ERROR") || line.contains("error")) {
build.append(line).append("\n");
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
closeIO(bufReader, isReader, is);
}
return build.toString();
}
public void closeIO(BufferedReader bufReader, InputStreamReader isReader,
InputStream is) {
if (null != bufReader) {
try {
bufReader.close();
} catch (IOException e) {
e.printStackTrace();
}
bufReader = null;
}
if (null != isReader) {
try {
isReader.close();
} catch (IOException e) {
e.printStackTrace();
}
isReader = null;
}
if (null != is) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
is = null;
}
}
public static void main(String[] args) {
String error = new LogsUtils().readError();
System.out.println(error);
}
}