我的问题可能是非常基本的问题,但我无法找到有效的解决方案。
在我的代码中,我有三个新的InputStream。
<script type="text/javascript">
$(function() {
$('#datetimepicker1').datepicker()({
});
});
</script>
这很简单。 InputStreamString和变量旁边的每个人都是一样的。他们是这样构建的:
InputStream fstream = WasuTimeTool.class.getResourceAsStream("/resources/dbConParam.txt");
BufferedReader dbParamReader = new BufferedReader(new InputStreamReader(fstream));
String dbParamLine;
当我构建全局Streams时,我遇到了使用变量和第二个和第三个流的冲突的问题。有没有一个解决方案可以获得一个单一的流并创建新的实例,还是应该保持三个不同的流?
答案 0 :(得分:1)
InputStream fstream = WasuTimeTool.class.getResourceAsStream("/resources/dbConParam.txt");
BufferedReader dbParamReader = new BufferedReader(new InputStreamReader(fstream));
String dbParamLine;
更像是
Stream one{
Stream two{
Stream three{
}
}
}
这是正确的,确定。
记住:关闭BufferedReader(又称Stream one)也将关闭InputStreamReader和InputStream!
有时Streams内部有一个小cache
。要尊重这种行为,您应该使用最具抽象级别的Stream,BufferedReader
在您的示例中如此谨慎。
如果您有此文件:
Hello
Friend
您使用Hello\nFri
阅读InputStream
,然后如果您使用readLine
中的BufferedReader
,您将成为end
。这很糟糕,因为它不是我们从方法readLine
接受的整行!
你应该这样做:
BufferedReader dbParamReader = new BufferedReader(new InputStreamReader(WasuTimeTool.class.getResourceAsStream("/resources/dbConParam.txt")));
String dbParamLine;
因此,没有人可以直接使用InputStream
。