我有这样的代码来使用读取文本文件BufferedReader
:
BufferedReader reader=null;
try {
reader = new BufferedReader(new FileReader("file1.txt"));
while (reader.ready()) {
final String line = reader.readLine();
System.out.println("<"+line+">");
} catch (..)
{
...
}
它可以正常工作,但是Findbugs报告警告:
NP_DEREFERENCE_OF_READLINE_VALUE:取消引用调用readLine()的结果,而不检查结果是否为null。如果没有更多的文本行要读取,则readLine()将返回null,并取消引用将生成一个null指针异常。
当我更改FileReader
为时StringReader
,即
BufferedReader reader=null;
try {
reader = new BufferedReader(new StringReader("ABCD"));
while (reader.ready()) {
final String line = reader.readLine();
System.out.println("<"+line+">");
} catch (..)
{
...
}
该readLine
方法返回null
而该ready
方法始终返回true
-实际上这是一个无限循环。
这似乎即使返回readLine
也可能返回。但是为什么行为对于不同的s会有所不同?null``ready``true``Reader
更新:
我确实知道读取文本文件的正常方法(就像Peter和Ali所说明的那样)。但是我从同事那里读了这段代码,意识到我不知道这种ready
方法。然后,我阅读了JavaDoc,但听不懂block
。然后我做了一个测试,并发布了这个问题。因此,提出此问题的更好方法可能是:
输入什么时候会阻塞?如何使用该ready
方法(或为什么不使用它)?为什么这2
Reader
s(FileReader
和StringReader
)在ready
方法上表现不同?
ready方法告诉我们Stream是否准备好被读取。
想象一下,您的流正在从网络套接字读取数据。在这种情况下,流可能尚未结束,因为套接字尚未关闭,但由于html" target="_blank">套接字的另一端还没有推送更多数据,因此它可能尚未为下一个数据块做好准备。
在上述情况下,除非远程端将其推送,否则我们将无法再读取任何数据,因此我们必须等待数据变为可用或套接字被关闭。ready()方法会告诉我们数据何时可用。
因此,作为家庭作业,我的任务是编写包含5种静态方法的代码。其中两人要求提供以下内容: “编写一个以整数X为参数的方法,如果X为偶数,则返回true;如果X为奇数,则返回false。” 和 “编写一个以正整数N为参数的方法,如果N是素数,则返回true,否则返回false。假设N 我不清楚我是否需要打印出正确或错误的方法。在我将println添加到方法调用之前,它们显然没有打印。所以我想我有两个问题
文件: Authentication authenticate(Authentication Authentication)抛出AuthenticationException使用与AuthenticationManager相同的约定执行身份验证。参数:authentication-身份验证请求对象。返回:包含凭据的经过完全身份验证的对象。如果AuthenticationProvider无法支持传递
问题内容: 我有一个对象,我想知道它的返回类型是否为。 我已经检查了Javadocs,并且有一个返回Class对象的方法。问题是,如果方法无效,他们不会说返回类型是什么。 谢谢! 问题答案: 快速样本:
我对模型映射器进行了以下配置,以将用户类的实例转换为扩展getuserdto的实例。 在注释掉setReceivedExpense之前,我收到了这个错误: 在花费了一些时间并没有找到根本原因之后,我试图删除DTO中所有可疑的循环依赖项(我在GetExpenseDto中引用了GetExpenseDto,expenseDtoConverter的返回结果),我仍然收到相同的错误,我注释掉了map()。s
Python3 File(文件) 方法 概述 readline() 方法用于从文件读取整行,包括 "\n" 字符。如果指定了一个非负数的参数,则返回指定大小的字节数,包括 "\n" 字符。 语法 readline() 方法语法如下: fileObject.readline(); 参数 size -- 从文件中读取的字节数。 返回值 返回从字符串中读取的字节。 实例 以下实例演示了 readl