`
红桃貳
  • 浏览: 40346 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java 学习笔记- I/O - buffered Stream

阅读更多



 buffered stream 是对unbuffered stream的封装,从而减少读写的操作,提高程序的效率,由上图可以看出,buffered stream 可以分为 字节流和字符流两种,用来封装字节流的buffered stream 类为:BufferedInputstream,BufferedOutputStream 其构造方法为:BufferedInputstream(InputStream in),BufferedOutputStream (OutPutStream out). 这两个类对应的常用方法分别是read() 和 write(int c).

用来封装字符流的buffered stream类为: BufferedReader 和 BufferedWriter 其构造方法:BufferedReader(Reader read), BufferedWriter(Writer write) 常用的方法为readLine() 和writer(String s).

 

代码示例:

 

package io.bufferedstream;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/**
 * 
 * @author PENGGR 
 * 
 * Buffered Stream 
 * 1.buffered for byte stream: BufferedInputStream,BufferedOutputStream
 * 2.buffered for character stream: BufferedReader, BufferedWriter
 * 
 * Why buffered? performance improving.
 */
public class CopyBufferedStream {

    public static void main(String[] args) {
        BufferedInputStream inputStream = null;
        BufferedOutputStream outputStream = null;

        BufferedReader inputStream2 = null;
        BufferedWriter outputStream2 = null;

        try {
            inputStream = new BufferedInputStream(new FileInputStream("D:\\360云盘\\javase\\src\\io\\xanadu.txt"));

            outputStream = new BufferedOutputStream(new FileOutputStream(
                    "D:\\360云盘\\javase\\src\\io\\bufferedStreamOut.txt"));
            int c;
            while ((c = inputStream.read()) != -1) {
                // outputStream.write(l);
                outputStream.write(c);
            }

            inputStream2 = new BufferedReader(new FileReader("D:\\360云盘\\javase\\src\\io\\xanadu.txt"));
            outputStream2 = new BufferedWriter(new FileWriter("D:\\360云盘\\javase\\src\\io\\bufferedStreamOut2.txt"));
            String l;
            while ((l = inputStream2.readLine()) != null) {
                outputStream2.write(l);
            }

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (inputStream != null) {
                    inputStream.close();
                }
                if (outputStream != null) {
                    outputStream.close();
                }

                if (outputStream2 != null) {
                    outputStream2.close();
                }
                if (inputStream2 != null) {
                    inputStream2.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

 

 

 

 

  • 大小: 190.4 KB
0
0
分享到:
评论

相关推荐

    java基础之I/O流

    通过学习和理解这些知识点,初学者能够熟练地使用Java I/O流进行各种数据操作,无论是简单的文件读写,还是复杂的网络数据交换,都能游刃有余。在实际编程中,根据需求选择合适的流类型和组合,能有效地提升程序的...

    Java I/O系统

    在Java I/O中,还有缓冲流(Buffered Streams)和装饰器模式的应用。例如,`BufferedReader`和`BufferedWriter`通过在实际读写操作之前存储数据,提高了读写性能。装饰器模式则允许在不改变原有类结构的基础上,动态...

    Linux直接I/O机制介绍

    **什么是缓存I/O (Buffered I/O)?** 缓存I/O是大多数文件系统的默认I/O操作模式。在这种模式下,操作系统会利用其内核缓冲区来缓存I/O数据,具体过程如下: - **数据读取**:当应用程序尝试读取数据时,数据首先被...

    java I/o操作

    BufferedReader FileInputStream FileReader java序列化 java I/O流操作

    Java学习资料-输入输出流

    Java中的I/O流分为四类:字节流(Byte Streams)和字符流(Character Streams),以及节点流(Stream Nodes)和处理流(Stream Filters)。在学习输入/输出流时,了解这些分类及其用途至关重要。 1. **字节流和字符...

    java学习笔记之Java-IO操作共19页.pdf.zi

    【Java IO操作详解】 在Java编程中,IO(Input/Output)操作是处理数据输入与输出的核心技术。Java-IO操作共19页的笔记详细介绍了这一关键领域,旨在帮助...这19页的学习笔记将是你掌握Java IO操作的重要参考资料。

    Java IO.pdf

    ### Java I/O 知识点概述 #### 一、Java I/O 概念与基础知识 - **流(Stream)的概念**:Java 的所有输入输出(I/O)设施都是基于流的...通过这些知识点的学习,开发者能够更加熟练地使用 Java 进行各种 I/O 相关的操作。

    Java-Io流,练习

    这些类在内部维护了一个缓冲区,可以减少实际的物理I/O次数。 五、转换流(Wrapper Stream) 字符流与字节流之间可以通过转换流进行互转。`InputStreamReader`和`OutputStreamWriter`就是这样的转换流,它们分别将...

    TMS320VC5501/5502/5503/5507/5509/5510 DSP Multichannel Buffered Serial Port (McBSP) Reference Guide

    TMS320VC5501/5502/5503/5507/5509/5510 DSP Multichannel Buffered Serial Port (McBSP) Reference Guide

    带缓存的文件I/O

    在IT领域,尤其是在系统编程和应用开发中,文件I/O(输入/输出)是一个至关重要的环节。本示例探讨的是“带缓存的文件I/O”技术,它涉及到C++编程,使用Visual Studio 2013开发环境,并且特别关注了在Windows操作...

    java jsp IO包 教程 新手入门

    本文旨在为新手提供一个全面的Java I/O教程,帮助读者理解Java I/O的基本概念、架构以及如何使用这些API。 #### 二、Java I/O概述 Java中的I/O系统设计得非常灵活且强大,它将所有类型的输入/输出抽象成“流”的...

    南邮Java课程实验-综合图形界面程序设计-小应用程序设计.zip

    在本实验中,"南邮Java课程实验-综合图形界面程序设计-小应用程序设计",学生将深入学习如何使用Java语言构建具有图形用户界面(GUI)的小应用程序。这个实验涵盖了多个重要的Java编程概念和技术,包括Java Swing库...

    Java语言程序设计基础篇课后题答案-Chapter18BinaryI_O.pdf

    Stream are concrete implementations, providing direct access to the underlying operating system's file I/O facilities. These classes are used for binary input and output, where data is read and ...

    C8051f35x系列单片机示例程序

    // F35x_ADC0_Buffered.c //----------------------------------------------------------------------------- // Copyright 2004 Silicon Laboratories, Inc. // // AUTH: BD / PC / BW // LMOD: BW 15 JUL 2004 //...

    Java-J2SE学习笔记.rar

    6. **输入输出流**:Java的I/O流处理涵盖了文件读写、网络通信、数据转换等多个方面。掌握InputStream、OutputStream、Reader、Writer等基本流,以及File、Buffered、Print、Scanner等实用类。 7. **多线程**:Java...

    《Java语言程序设计》课件及源代码_第6章 输入输出流

    2. **缓冲流(Buffered Stream)**:为了提高效率,Java提供了缓冲流,如`BufferedInputStream`(`J_BufferedInputStream.java`)。这些类会在内部创建一个缓冲区,允许批量读取或写入数据,减少与底层系统的交互...

    Java培训教程-清华版(共5部分)-4

    6. **NIO(New IO)**: Java 1.4引入了NIO,它提供了一种非阻塞的I/O模型,适用于高并发和大数据处理。NIO的核心组件包括通道(Channel)、缓冲区(Buffer)和选择器(Selector)。 **Java 高级特性** 这部分教程...

    驱动编程学习资料

    这些API支持各种I/O操作模式,包括缓冲I/O(Buffered I/O)、直接I/O(Direct I/O)、异步I/O(Asynchronous I/O)等,它们是驱动程序与硬件通信的基础。 在WDM(Windows Driver Model)驱动模型中,每个驱动都有一...

    java自学手册 --有了它,Java超级好学的

    Java的I/O流用于读写文件、网络数据等。分为字节流(InputStream和OutputStream)和字符流(Reader和Writer),还有更高级的Buffered流、File流和对象序列化流等。 七、多线程 Java内置了对多线程的支持,可以通过...

Global site tag (gtag.js) - Google Analytics