当前位置: 首页 > 知识库问答 >
问题:

我们如何使用挂钩来增强性能?

洪宏硕
2023-03-14

Java Docs说Java Docs

公共类BufferedReader扩展阅读器

但是通过挂钩Filereader,我们使用Filereader的读取方法来读取一次读取一个字符的文件,所以如果我的文件包含2000个字符,Filereader首先会一次读取2000个字符,并将其转移到缓冲区,我们将使用bufferedreader从缓冲区读取,那么它如何提高性能?我们可以只用Filereader来完成吗?

共有1个答案

尹庆
2023-03-14

对于缓冲来说,你就像有一辆卡车,当你进行旅行时,你将一些数据单元(缓冲区的大小)装载到负载层(缓冲区)上,这样你就不必进行大量的旅行,从而提高效率。

通常,当您打开一个文件进行读取时,您希望读取的内容超过一个charachter,因此最好使用BufferedRead。

这同样适用于写作。

abstract public int read(char cbuf[], int off, int len) throws IOException;

您的阅读器来填充缓冲区。它不使用只读取单个字符的方法!换句话说,当fill方法必须进行旅行时,它从底层输入流中检索一系列charcters并将其保存在内存中,这样当您需要读取时,它首先在缓冲区中查找、使用它并在必要时重新填充它。

您可以通过自己调用fileReaderread(char cbuf[],int off,int len)来实现同样的功能,但是这样您就只需要一系列charcter,例如,这些charcters包含以下文本

Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
sed diam nonumy eirmod tempor invidunt ut labore et dolore
magna aliquyam erat, sed diam voluptua.

例如,可能是这样的

"onsetetur sadipscing elitr,\r\nsed diam nonumy eirmod temp"

但您不必这样做,因为BufferedReader为您处理这件事,这也是为什么您最好编写

BufferedReader in = new BufferedReader(new FileReader("foo.in"));
 类似资料:
  • 我试图创建一个简单的组件,从Apollo GraphQL服务器(查询)返回我的所有组织。我想从一个上下文状态呈现所有这些组织,在这个上下文状态下,在组件挂载(由useEffect挂钩处理)之后,可以使用分派方法放置这些组织。 如果状态结果(organizations数组)为空,useEffect钩子应该调用函数getOrganizations,然后调用自定义钩子useGetOrganization

  • 问题内容: 考虑下面的钩子示例 基本上,我们使用this.forceUpdate()方法强制组件在React类组件中立即重新呈现,如以下示例所示 但是我的查询是如何强制上述功能组件立即使用挂钩重新渲染? 问题答案: 可以使用或进行,因为在内部使用: 不打算在正常情况下使用,仅在测试或其他出色情况下使用。可以以更常规的方式解决这种情况。 是使用不当的例子,是异步的性能,而且不应该被强迫只是因为状态更

  • 问题内容: 关于如何/ 自我,有一个类似的问题,可以回答,但是我想知道如何使用“自我”而不会由于以下原因导致向右漂移: 问题答案: 你 可以 影子; 您只需要反引号即可表明“您知道自己在做什么”。例如: 或者,在您的示例中:

  • 问题内容: 我注意到当我使用react挂钩时,子组件的状态更改不会重新呈现没有状态更改的父组件。可以通过以下代码沙箱查看: https //codesandbox.io/s/kmx6nqr4o 由于缺少将组件作为参数或绑定上下文传递给钩子的原因,我错误地认为反应钩子/状态更改只会触发整个应用程序的重新渲染,例如秘银的工作方式以及React的设计原则指出的内容: React递归地遍历树,并在一个滴答

  • 问题内容: 我正在学习有关如何使用钩子注册事件的Udemy课程,讲师给出了以下代码: 现在效果很好,但我不认为这是正确的方法。原因是,如果我理解正确,则每次重新渲染时,事件都会每次都在注册和注销,并且我根本认为这样做不是正确的方法。 所以我对下面的钩子做了一些修改 通过使用一个空数组作为第二个参数,使组件只运行一次效果,即模仿。当我尝试结果时,奇怪的是,在我键入的每个键上都没有附加,而是被覆盖了。

  • 问题内容: 我知道使我们的类不可变的所有基本规则,但是当有另一个类引用时,我有点困惑。我知道是否有集合而不是集合,然后我们可以利用它,然后使我们的类不可变。但是在下面的情况下,我仍然无法理解这个概念。 问题答案: 好吧,这个概念是阅读并了解JLS。在这种情况下,JLS说: final字段还允许程序员无需同步即可实现线程安全的不可变对象。即使所有线程都使用数据竞争在线程之间传递对不可变对象的引用,线