美文网首页
JAVA IO之缓冲

JAVA IO之缓冲

作者: engineer_tang | 来源:发表于2020-11-26 20:37 被阅读0次

1. BufferedWriter和BufferedReader

1.1 BufferedReader类

从JDK 1.1 开始引入该类,从字符输入流中读取文本,缓冲字符,以便有效地读取字符、数组和行。
可以指定缓冲区大小,也可以使用默认大小。对于大多数目的来说,默认值足够大。
一般来说,读卡器发出的每个读请求都会导致对底层字符或字节流发出相应的读请求。因此,建议在读操作可能很昂贵的任何读取器(如FileReader和InputStreamReaders)周围包装一个BufferedReader。
用法:

  BufferedReader in = new BufferedReader(new FileReader("foo.in"));

将缓冲指定文件中的输入。如果没有缓冲,每次调用read()或readLine()都可能导致从文件中读取字节,将其转换为字符,然后返回,这可能非常低效。

使用DataInputStreams进行文本输入的程序可以通过用适当的BufferedReader替换每个DataInputStream来本地化。

1.2 BufferedWriter类

将文本写入字符输出流,缓冲字符以便有效地写入单个字符、数组和字符串。
可以指定缓冲区大小,也可以接受默认大小。对于大多数目的来说,默认值足够大。

提供了一个newLine方法,它使用平台自己的行分隔符概念(由系统属性<tt>行分隔符</tt>。并非所有平台都使用换行符('\n')来终止行。因此,与直接编写换行符相比,调用此方法终止每个输出行更可取。

通常,一个Writer对象会立即将其输出发送到底层字符或字节流。除非需要及时输出,否则建议将BufferedWriter包装在任何Writer 上,如果直接调Writer的write方法操作可能很昂贵的,例如filewriter和OutputStreamWriters。
用法:

PrintWriter out  = new PrintWriter(new BufferedWriter(new FileWriter("foo.out")));

将把PrintWriter的输出缓冲到文件中。如果没有缓冲,每次调用print()方法都会导致字符被转换成字节,然后立即写入文件,这可能会非常低效。

2. BufferedInputStream和BufferedOutputStream

2.1 BufferedInputStream类

BufferedInputStream在另一个输入流增加了功能,即缓冲输入并支持“标记”和“重置”方法的能力。创建BufferedInputStream时,将创建一个内部缓冲区数组。当读取或跳过流中的字节时,根据需要从包含的输入流重新填充内部缓冲区,一次填充多个字节。标记操作会记住输入流中的一个点,重置操作会在从包含的输入流获取新字节之前,重新读取最近的标记操作以来读取的所有字节。

2.2 BufferedOutputStream类

该类实现缓冲输出流。通过设置这样的输出流,应用程序可以向底层输出流写入字节,而不必为写入的每个字节都引起对底层系统的调用。

相关文章

  • JAVA IO之缓冲

    1. BufferedWriter和BufferedReader 1.1 BufferedReader类 从JDK...

  • java-nio学习之java io比较

    java io 基本介绍 java nio和io区别 面向流与面向缓冲 IO是面向流的,NIO是面向缓冲区的。 J...

  • 01Nio-Buffer

    缓冲区的使用 Java IO和NIO之间第一个最大的区别是,IO是面向流的,NIO是面向缓冲区的。 Java IO...

  • 2019-04-30——Java NOI

    经典java IO库 对于经典的IO除了Buffered开头的类,其他均没有加缓冲区,除非手动添加缓冲区 经典io...

  • Java之IO(四)缓冲流

    之前学习的字节流字符流,都可以读写文件对数据进行操作,当读写数据量很大时,读取的速度会很慢影响效率,那么Java中...

  • IO、NIO

    IO、NIO Java NIO和IO之间第一个最大的区别是,IO是面向流的,NIO是面向缓冲区的。 Java IO...

  • [java]13、缓冲流

    1、字节缓冲输出流 java.io.BufferedOutputStream extends OutputStre...

  • java基础之IO流

    IO流上:概述、字符流、缓冲区(java基础) IO流结构图 FilterInputStream、FilterOu...

  • Java中的IO流

    Java中的IO流分类 输入IO流输入字节流(InputStream)处理流缓冲流(BufferedInputSt...

  • IO和NIO区别

    IO是面向流的,NIO是面向缓冲区的;Java IO的各种流是阻塞的,Java NIO的非阻塞模式;Java NI...

网友评论

      本文标题:JAVA IO之缓冲

      本文链接:https://www.haomeiwen.com/subject/xlpaiktx.html