如果我有其中每个数字表示一个字节以下示例文件(123具有字节1,2和3):

123456789

让我们说我创建一个FileInputStream。这读取由字节的二进制字节。所以.read()返回1,然后2,等等。现在让我们说我创建一个缓冲区。初始块,读入(如果我理解正确的缓冲区)为1-5。这使得它不仅在逐字节读取,但在整个字符线等的情况下,但如果我打.read()再次,我在6开始,不要在那里的BufferedReader停止(所以,如果3是线断裂,并且我告诉的BufferedReader打印第一线,它打印1-2,然后用.read()从所述的FileInputStream给我6,而不是3。)

为了能够通过分隔符来分析数据,并扫描仪隐含创建这样一个BufferedReader如何创造一个缓冲的缓冲,以便它可以找到换行,等等?并且如果我通过一个单独的FileInputStream到扫描仪,使用.read()将不打印第一分隔符扫描器发现以下的第一个字节,而是以“块”的端部的扫描仪了?

有帮助吗?

解决方案

java.util.Scanner代码:

// Internal buffer used to hold input
private CharBuffer buf;

// Size of internal character buffer
private static final int BUFFER_SIZE = 1024; // change to 1024;

其他提示

这不是很明显,但如果你在扫描仪的API文档仔细看,你看,它的基础上的 Readable 接口 - 在该接口的唯一的方法是基于一个缓冲器。所以,是,扫描仪隐式地创建的缓冲器。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top