`
ccr1988
  • 浏览: 35702 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java I/O

阅读更多
在具体分析某一种流的前要先知道下面一些信息:
  4个抽象类也是流的4个超类,其它所有的相关类都是继承这几个类
  字节
  InputStream , OutputStream
  字符
  Reader , Writer
  除了知道这几个超类外还需要只要流相关的几个重要的接口
  Flushable  提供将缓存中数据写入底层流,是输出流的重要部分
  Readable  是reader 要实现的接口
在弄清楚上面这些,再去看流就会清晰了很多,无论是字节的输入输出,还是字符的输入输出,还是字接的输入与字符的输入。。。等等都有很多相似度。
  从宏观角度,一个是以字节的形式进行信息的传输,一个是以字符的形式进行信息传输,都有输入输出功能。
  第一:字节流
      1,输入流
           在这里有3个重要的InputStream 实现类,这3个也是大家经常用到的
            1, FileInputStream  文件输入流,它是直接继承InputStream 的。
            2, FilterInputStream  过滤流,它也直接继承了InputStream ,这个流大家似乎有些陌生,但是它的2个子类大家一定非常熟悉
               <1>BufferedInputStream 缓存流,把拿到的数据先存到缓存中,最后在一起提交,提高效率
               <2>DataInputStream 从最底层读取数据,也叫做二进制流
     2,输入流也有3个重要的实现类,跟上面的类似
第二:字符流
      1,输入流
           Reader 实现Readerable接口
      它是以字符的形式写入数据,重要的2个实现类是
          1,FileReader  (继承InputStreamReader[该类又继承了Reader])
          2,  BufferedReader 直接继承了Reader
      2, 输出流 跟输入流类似,把Reader改为Writer即可
对于上面2点,我没有写的非常详细,是因为他们之间大部分都是一样的,只是个别地方出现一点差异,最重要的就是File,Buffered,Data这些字样,
由于读取数据的方式有很多种,需要根据不同的条件来进行筛选,如果需要读取的是一些不含中文的一些字母,数量不多就可以用不同的输入输出字节流,
如果需要从文件中读取,或者写到文件中就需要文件流,当读取的数量较大的时候就需要用缓存流,字符流比较适合最小单位是字符的数据存储方式的数据。
我用一个测试类来写下上面几个常用流。
public class BufferedTest {

	
	public static void main(String[] args) {
		BufferedTest test=new BufferedTest();
		test.test1();
		test.test2();

	}
	//test1 BufferedInputStream and BufferedOutputStream
	public void test1(){
		try {
			InputStream in=new FileInputStream(new File("d:/intStream.txt"));
			byte [] b=new byte[100];
			BufferedInputStream bi=new BufferedInputStream(in);
			bi.read(b);
			OutputStream out=new FileOutputStream(new File("d:/outStream.txt"));
			BufferedOutputStream bo=new BufferedOutputStream(out);
			bo.write(b);
			//将缓存中数据写如文件
			bo.flush();
			
		} catch (FileNotFoundException e) {
			
			e.printStackTrace();
		} catch (IOException e) {
			
			e.printStackTrace();
		}
	}
   //test2 BufferedReader and BufferedWriter
	public void test2(){
		try {
			Reader reader=new FileReader(new File("d:/reader.txt"));
			BufferedReader br=new BufferedReader(reader);
			char a[]=new char[100];
			br.read(a);
			FileWriter fw=new FileWriter(new File("d:/writer.txt"));
			BufferedWriter bw=new BufferedWriter(fw);
			bw.write(a);
			//将缓存中数据写如文件
			bw.flush();
			
		} catch (FileNotFoundException e) {
			
			e.printStackTrace();
		} catch (IOException e) {
			
			e.printStackTrace();
		}
	}
}
0
0
分享到:
评论

相关推荐

    Java I/O, 2nd Edition

    《Java I/O, 2nd Edition》是一本深入探讨Java输入/输出系统的重要书籍,针对Java平台的I/O系统提供了全面且深入的指南。这本书在第二版中对Java I/O进行了更新,涵盖了从Java 5到Java 8的最新发展,包括NIO.2(New ...

    java I/O内容

    这是一个关于Java I/O的知识点总结,希望大家共同学习,共同进步

    java I/O类的使用

    Java I/O类库是Java平台的核心部分,它提供了丰富的类用于处理输入和输出操作。这个系统包括了多种类,从简单的字节流到复杂的字符流,以及一系列的装饰器类,用于扩展和增强原始流的功能。 Java 1.0 和 1.1 中的I/...

    Java I/O, NIO and NIO.2

    Java I/O, NIO, 和 NIO.2 是Java平台中处理输入/输出操作的核心组件,对于任何Java开发者来说,理解和掌握这些概念至关重要。本文将深入探讨这些技术,旨在提供一个全面而详尽的概述。 Java I/O(Input/Output)是...

    Java I/O编程 java

    Java I/O 编程是Java开发中的重要组成部分,主要用于处理数据的输入与输出。下面将详细阐述其中的关键概念和方法。 1. 数据流的概念及输入输出方法: 数据流是计算机中进行数据传输的通道,包括从外部设备到程序的...

    Java I/O 过滤流-带格式的读写操作

    在Java编程语言中,输入/输出(I/O)是处理数据传输的核心部分。过滤流(Filter Stream)是Java I/O框架中的一个重要概念,它提供了一种优雅的方式来进行数据的读写操作,同时允许我们添加额外的功能,如字符编码...

    Java I/O 流代码实例大全(01~09)

    Java I/O 流代码实例大全(01~09) File、FileInputStream、FileOutputStream、FileReader、FileWriter、BufferedInputStream、BufferedOutputStream、BufferedReader、BufferedWriter

    Java I/O 第二版

    OReilly.Java.I.O.2nd.Edition.May.2006 Java的io包主要包括: 1. 两种流:字节流(byte Stream)和字符流(character stream),这两种流不存在所谓的谁代替谁、谁比谁高级之说,它们互为补充,只是侧重点不同...

    深入分析 Java I/O 的工作机制(转载)

    Java I/O(输入/输出)系统是Java编程语言中用于处理数据流的重要组成部分,它允许程序与外部资源如文件、网络、硬件设备等进行交互。深入理解Java I/O的工作机制对于开发高效、可靠的系统至关重要。以下是对Java I/...

    Java I/O系统

    Java I/O系统是Java编程语言中的一个重要组成部分,它允许程序进行输入输出操作,与外部世界进行数据交互。在Java中,I/O系统基于流的概念,流可以被视为数据的流动渠道,既可以用来读取数据(输入流),也可以写入...

    Java 新I/O

    Java 新I/O,也称为NIO(New Input/Output),是Java平台中对传统I/O模型的一种改进。在Java 1.4版本中引入的NIO库为开发人员提供了更高效、非阻塞的数据处理方式,特别适用于高并发、低延迟的系统。NIO的核心在于...

    Java I/O层次结构详解

    Java I/O层次结构详解 Java I/O系统是Java平台中不可或缺的一部分,它为开发者提供了处理输入和输出的强大工具。在Java中,I/O操作主要基于流(Stream)的概念,流可以被视为数据的有序序列,既可以代表从源读取...

    Java I/O流通讯录

    Java I/O流通讯录是一个基于Java编程语言设计的实用程序,它主要用于演示和学习Java的I/O流操作。在这个项目中,开发者通过I/O流实现了对文件的读写功能,从而构建了一个简单的通讯录系统。这个系统允许用户进行添加...

    Java I/O学习笔记: 磁盘操作 字节操作 字符操作 对象操作 网络操作 NIO & AIO Java I/O

    Java I/O学习笔记: 磁盘操作 字节操作 字符操作 对象操作 网络操作 NIO & AIO Java I/O Java是一种面向对象的编程语言,由Sun Microsystems于1995年推出。它是一种跨平台的语言,意味着可以在不同的操作系统上运行...

    Java I/O总结

    ### Java I/O总结 #### 一、从`new BufferedReader(new InputStreamReader(conn.getInputStream()))`想到的 在Java编程中,处理输入输出(I/O)是一项常见的任务。这段代码`new BufferedReader(new ...

    java i/0习题

    Java I/O(输入/输出)是Java编程语言中不可或缺的一部分,它允许程序与外部资源进行数据交换,如文件、网络连接、系统硬件等。在Java I/O中,我们使用流(Stream)的概念来处理数据,流是数据传输的通道。本套习题...

    java I/o 详细介绍课件

    java I/o java I/o 详细介绍课件

    Java I/O文件读写/删除/复制等

    Java I/O 文件操作是Java编程中的重要组成部分,它允许开发者处理输入和输出,涉及文件的创建、读取、写入、删除以及复制等任务。在Java中,这些操作主要是通过java.io包提供的类来实现的。下面将详细介绍这些知识点...

    Java I/O 使用和最佳实践

    Java I/O系统是Java编程语言中的一个核心组成部分,它提供了处理输入输出操作的类和接口。这个系统的设计目的是为了使得应用程序能够与外部世界交互,包括读取和写入文件、网络数据、标准输入输出流等。在Java中,I/...

    MaglevIO,一个易于使用和高效的Java I/O库。基于Java NATEVEIO。.zip

    MaglevIO是一个专注于提供易用性和高性能的Java I/O库,其设计灵感来源于Java的非阻塞I/O(Non-blocking I/O,NIO)框架。NIO是Java平台中一个重要的部分,它允许程序在处理大量并发连接时显著提高效率,尤其是在...

Global site tag (gtag.js) - Google Analytics