java中的流——缓冲流
缓冲流要套在相应的“节点流”之上,对读写的数据提供缓冲功能。
JDK提供了四种缓冲流:
java.io
Class BufferedReader
Constructor Summary
BufferedReader(Reader in)
Creates a buffering character-input stream that uses a default-sized input buffer.
|
BufferedReader(Reader in, int sz)
Creates a buffering character-input stream that uses an input buffer of the specified size.
|
java.io
Class BufferedWriter
Constructor Summary
BufferedWriter(Writer out)
Creates a buffered character-output stream that uses a default-sized output buffer.
|
BufferedWriter(Writer out, int sz)
Creates a new buffered character-output stream that uses an output buffer of the given size.
|
java.io
Class BufferedInputStream
Constructor Summary
BufferedInputStream(InputStream in)
Creates a
BufferedInputStream and saves its argument, the input stream in , for later use. |
BufferedInputStream(InputStream in, int size)
Creates a
BufferedInputStream with the specified buffer size, and saves its argument, the input stream in , for later use. |
java.io
Class BufferedOutputStream
Constructor Summary
BufferedOutputStream(OutputStream out)
Creates a new buffered output stream to write data to the specified underlying output stream.
|
BufferedOutputStream(OutputStream out, int size)
Creates a new buffered output stream to write data to the specified underlying output stream with the specified buffer size.
|
处理流类型:
java.io
Class BufferedInputStream
TestBufferStream1.java
import java.io.*; /* BufferedInputStream缓冲输入流 测试BufferStream,缓冲流 */ public class TestBufferStream1 { public static void main(String[] args) { try { FileInputStream fis = new FileInputStream("F:\\java\\io\\HelloWorld.java"); //BufferedInputStream缓冲流 BufferedInputStream bis = new BufferedInputStream(fis); int c = 0; System.out.println((char)bis.read()); System.out.println(bis.read()); //mark(100),标记,从第100个字符开始读 bis.mark(100); for(int i=0;i<=10 && (c=bis.read())!=-1;i++){ System.out.print((char)c+" "); } System.out.println(); //reset()回到标记的点,即第100个字符 bis.reset(); for(int i=0;i<=10 && (c=bis.read())!=-1;i++){ System.out.print((char)c+" "); } bis.close(); } catch (IOException e) {e.printStackTrace();} } }
F:\java\io>javac TestBufferStream1.java F:\java\io>java TestBufferStream1 p 117 b l i c c l a s s b l i c c l a s s F:\java\io>javac TestBufferStream2.java
java.io
Class BufferedReader
java.io
Class BufferedWriter
TestBufferStream2.java
import java.io.*; /* BufferedWriter,BufferedReader 缓冲流 */ public class TestBufferStream2 { public static void main(String[] args) { try { BufferedWriter bw = new BufferedWriter(new FileWriter("F:\\java\\io\\dat2.txt")); BufferedReader br = new BufferedReader(new FileReader("F:\\java\\io\\dat2.txt")); String s = null; for(int i=1;i<=100;i++){ //随机数转成字符串 s = String.valueOf(Math.random()); //写入缓冲流 bw.write(s); //换行 bw.newLine(); } //倒光数据 bw.flush(); //读取行 while((s=br.readLine())!=null){ System.out.println(s); } bw.close(); br.close(); } catch (IOException e) { e.printStackTrace(); } } }
F:\java\io>java TestBufferStream2 0.44605365873993197 0.7172517110637919 0.45266496240025944 0.26441294566414975 0.40643865442669536 0.7307633218927724 0.2641493131251609 0.16215857289597668 0.09546816530624025 0.05250590007012379 0.706305952265802 0.7146685956709623 0.12094533453441803 0.41902835622438284 0.716202475273043 0.7838577652318317 0.7729074867368703 0.41414034677906597 0.9838619363312414 0.14519005797714812 0.09659520188919035 0.6194052270847193 0.20280298200322233 0.8644062694639841 0.059035295760902495 0.24494202492557415 0.3453610863673868 0.7162218991497389 0.5663478287237094 0.940274785183616 0.7633587185037936 0.15772118849521666 0.7461146190378233 0.9937553274103151 0.8375434198068626 0.7685868655604795 0.34762266286039056 0.6691255839665746 0.10331487867637068 9.70149639575757E-4 0.3325232668934798 0.9990736725881437 0.2656129731949294 0.5437184674341257 0.7294229747248173 0.958178159164025 0.28244080752612866 0.5988433149852124 0.6081506107095568 0.5714226965983857 0.7443482366259503 0.8925242801963478 0.592919434086085 0.17950368867556477 0.10630276309040054 0.2986093862407587 0.6783319116914838 0.7784411465205322 0.938726461500579 0.5394861049131998 0.23814935074824095 0.07854366352549125 0.25607902421683426 0.5473613826413953 0.023976602180069806 0.6865658312828175 0.15421857525112181 0.7184029694266285 0.6394879002643735 0.6049366977117457 0.44187356561114777 0.4728586447683065 0.44554652206609735 0.06322664824973623 0.6869106357451145 0.2461837005738483 0.10254764456903398 0.5495584892863888 0.11468448059632808 0.27937135694773985 0.9885405636272356 0.79345848200023 0.09360825354076607 0.35109483302822087 0.5451623333244178 0.3666817980972056 0.5221833506515708 0.8999336014991125 0.19814206262263445 0.5148354642313737 0.29208016057346686 0.8218706075012052 0.875111660954438 0.8101619682408246 0.14346207744893114 0.5964115429721846 0.30068472586288386 0.22463444345335803 0.6515971969848199 0.29409071208430937 F:\java\io>
先生成文件dat2.txt,再读取文件
相关推荐
这份“java基础——————试题库”资源旨在帮助学习者系统地复习和深入理解Java的基础知识,确保他们能够全方位地掌握这一强大的编程工具。下面将详细阐述Java的基础知识点。 1. **Java简介** - Java是由Sun ...
缓冲流基于IO流,在IO流中使用。顾名思义,它是一个缓冲内存,即在对外部设备中的文件进行读写操作时,先创建一定内存,然后再在这部分内存中读写数据,读写完成后再统一访问该设备。使用缓冲流减少了对外部硬盘的...
Java的I/O流处理能力强大,涵盖了字符流、字节流、缓冲流、转换流等多种类型。面试中可能会要求编写读写文件、网络通信的代码,或者分析和优化I/O操作的性能。 七、数据库操作 JDBC是Java连接数据库的标准API,面试...
【Java学习笔记——良葛格】是一份由爱好者良葛格整理的Java学习资料,主要以PDF格式呈现,虽然可能不完整,但包含了丰富的Java编程基础知识和实践技巧,旨在为初学者提供一个学习和参考的平台。以下是笔记中可能...
- **流**:Java的I/O流模型基于流的概念,用于读写数据。流分为字节流和字符流,以及输入流和输出流。 - **缓冲区**:BufferedReader和BufferedWriter等类提供了缓冲功能,提高数据读写的效率。 - **对象序列化**...
【JAVA经典例题——超赞版】是一份集合了JAVA编程语言中常见且重要的实例,旨在帮助学习者深入理解和掌握JAVA编程的核心概念和技术。这份资源包含了一系列精心挑选的JAVA题目,覆盖了从基础语法到高级特性的广泛内容...
本文将详细介绍Java中的双缓冲技术原理,并通过一个具体的示例来展示如何实现双缓冲,旨在帮助初学者理解和掌握这项技术。 #### 二、双缓冲技术概述 **双缓冲技术**是一种广泛应用于图形渲染领域的技术,主要用于...
如果运行环境中没有Java 7或更高版本,需要在finally块中手动调用`close()`方法来关闭流。 此外,`FileReader`默认使用平台的默认字符编码,如果你知道文件使用特定的字符集,可以使用`InputStreamReader`并指定...
本文将深入探讨如何通过使用I/O缓冲区来提升Java程序的I/O性能,并通过一个生物信息学领域的具体案例——基因序列搜索应用来进行说明。实验结果表明,通过合理地运用I/O缓冲技术,可以在某些情况下使Java程序的I/O...
### Java基础——IO流及File、RandomAccessFile对象 #### IO流概述 在Java中,IO流主要用于处理设备上的数据,这里的“流”可以被理解为数据的流动过程,即数据从一个地方移动到另一个地方的过程。Java中的IO流通过...
Java中的输入输出是以流(Stream)来方式来处理的,流是在计算机的输入、输出操作中流动的数据序列(从网上下载软件时能清晰地感受到)。在 Java 中,流是指一序列的数据元素,这些数据元素是从一个源头流向一个...
Java中的IO流主要位于`java.io`包中,该包包含了用于处理各种类型数据的流类。其中最重要的是五个类和三个接口: - **File**: 文件类,用于处理文件和目录的操作。 - **InputStream**: 字节输入流,用于从数据源...
在这个特定的案例中,"java毕业设计——文本编辑器.zip" 文件很可能包含了一个使用Java开发的文本编辑器应用程序。文本编辑器是计算机科学中常见的项目,因为它能够帮助学生掌握GUI(图形用户界面)设计、事件处理、...
### JAVA IO操作总结——节点流和处理流 #### 一、概述 在Java中,输入/输出(Input/Output,简称IO)操作是一项非常重要的功能,它涉及到如何从不同的源读取数据以及如何向不同的目的地写入数据。Java IO体系主要...
3. **IO流**:Java的`InputStream`和`OutputStream`用于处理数据的读写,聊天室中通常使用`PrintWriter`向客户端发送消息,`BufferedReader`从客户端读取输入。使用缓冲区可以提高效率,减少网络I/O操作。 4. **...
- Java的I/O流(InputStream和OutputStream)系统在处理网络数据传输中起到关键作用,它们允许数据在套接字之间流动。 - NIO(Non-blocking I/O)是Java 1.4引入的新特性,提高了多路复用的性能,适用于高并发场景...
Java的FileInputStream和FileOutputStream可以用来读写本地文件,而Socket的输入输出流则用于网络上的数据传输。在飞鸽传书中,文件会被分割成多个块,然后逐个发送,接收端再重新组合成原始文件。 5. **网络发现与...
本教程将深入讲解Java NIO中的流和通道概念,以帮助开发者更好地理解和利用这一强大的功能。 首先,我们要理解Java NIO的核心组件之一——流。在Java的IO体系中,流是数据传输的抽象,它代表了数据的流向,可以是...
为了提高读写效率,Java提供了一种特殊的流——缓冲流(BufferedInputStream/BufferedReader等)。缓冲流会在内存中开辟一块区域作为缓冲区,通过批量读写数据来减少磁盘I/O次数,从而提升性能。 五、转换流 转换流...