在类下运行以下代码时 FlightSearch
String moreSearch = "y";
List<Flight> resultList;
// load initial flight data into DB
if (!init()) {
return;
}
// A background thread to monitor changes in csv repository
FileListner fl = new FileListner();
fl.start();
do {
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
// main thread gets input
Input inputQuery = new Input();
try {
inputQuery.getQuery();
} catch (InvalidException e1) {
e1.getMessage();
} finally {
fl.stopThread();
}
// main thread STARTs processing task as background monitors csv
// repo
QueryProcessor processor = new QueryProcessor();
resultList = null;
resultList = processor.matchQuery(inputQuery);
displayResult(resultList, inputQuery.getFlightClass());
System.out
.println("More Flight Query ? Press n/N to exit. Anyother key to continue searching.");
try {
moreSearch = br.readLine(); // LINE 56
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(br!=null){
try {
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
} while (!moreSearch.equalsIgnoreCase("n"));
System.out.println("Thank You !!!");
我收到以下错误:
java.io.IOException: Stream closed
at java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:162)
at java.io.BufferedInputStream.read(BufferedInputStream.java:325)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.BufferedReader.fill(BufferedReader.java:154)
at java.io.BufferedReader.readLine(BufferedReader.java:317)
at java.io.BufferedReader.readLine(BufferedReader.java:382)
at com.myApp.FlightSearch.main(FlightSearch.java:56)
我也试过搬家
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
走出do-while循环但徒劳无功。
问题是br.close()
,按照javadoc的说明,您执行了该操作,将关闭流 并释放与之关联的所有系统资源 。
为了快速验证,请注释掉:
if (br != null) {
// try {
// br.close();
// } catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
}
您可以s
随时随地回答,没有任何例外。
一种解决方案是在所有读取终止后关闭缓冲区读取器:
String moreSearch = null;
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
try {
do {
// ...
System.out.println("More Flight Query ? Press n/N to exit. Anyother key to continue searching.");
moreSearch = br.readLine();
} while (!moreSearch.equalsIgnoreCase("n"));
} catch (IOException e) {
Logger.getLogger(FlightSearch.class.getName()).log(Level.SEVERE, "Cant read line from a System.in based BufferedReader", e);
} finally {
if (br != null) {
try {
br.close();
} catch (IOException ignoreMe) {
Logger.getLogger(FlightSearch.class.getName()).log(Level.SEVERE, "Can't close a System.in based BufferedReader", ignoreMe);
}
}
}
在本章中,我们将讨论在使用SLF4J时获得的各种错误消息或警告以及这些消息的原因/含义。 无法加载类“org.slf4j.impl.StaticLoggerBinder”。 这是在类路径中没有提供SLF4J绑定时引起的警告。 以下是完整的警告 - 要解决此问题,需要添加任一日志框架绑定。本教程上一小节对此进行了解释说明。 注 - 这种情况发生在SLF4J的版本中,介于1.6.0和1.8.0-bet
问题内容: 这是我的代码片段: 这应该给我一个错误,因为这些表甚至不存在。但是我得到的是: 数组([0] => 00000) 如何获得对该错误的更好描述,以便可以调试问题? 问题答案: 尝试以下方法: 在准备之前添加以下内容: 这将更改PDO错误报告类型,并在出现PDO错误时使其发出警告。尽管应该设置您的errorInfo,但它应该可以帮助您进行跟踪。
我正在使用Eclipse将json隐藏到Java中的字符串中。但我一直收到: 有人能告诉我json有什么问题吗?我如何改变它使其有效?我对java和json相当陌生,如果我错过了任何应该包括的细节,我很抱歉。
我为Money类编写了一个自定义Hibernate验证约束: 它工作正常,除了错误信息。我看到了非常奇怪的行为:找到了资源包,消息按名称解析,但它被包裹在特殊的字符中,如果消息不能按名称解析,通常会出现这些字符: 此处
我正在尝试读取文件中的一行,在喷口中,然后将其发送到螺栓,但我一直收到流关闭错误。我关闭错误还是这里有什么问题? 这是我遇到的错误: Java语言io。IOException:溪流在周日关闭。nio。反恐精英。StreamDecoder。ensureOpen(StreamDecoder.java:46)在sun上。nio。反恐精英。StreamDecoder。在java上读取(StreamDeco
我正在使用spring-cloud-stream:1.3.0.发行版、spring-cloud-stream-binder-kafka:1.3.0.发行版开发spring引导应用程序。我使用spring integration dsl拆分文件中的行,使用beanio将行转换为json,要求将成功的json消息写入一个kafka主题,并将错误消息写入不同的kafka主题。下面是application