初级 Java I/O 综述(一)

原创 2004年01月14日 11:11:00

Java IO 综述

看论坛里面有人问有关Java IO方面的东西,小弟不才。写些东西,希望给大家一些启发,也算是抛砖引玉吧。^_^

JavaIO包支持Java的基本输入/输出(I/O)系统,也包括文件的输入和输出。JavaIO部分,我打算分两部分阐述,首先我们讨论IO子系统的基础,然后再讨论深入的部分。

如果你有Java编码的经验,你会发现这些程序里面并不是用到很多的IO子系统。事实上,除了Print()和Println(),基本上没有用到其他的IO方法。原因很简单:多数实际的Java应用程序并不是基于文本、控制台的,而是基于图形化的Appliaction,这些程序依赖于用户的交互的Java AWTSwing类。同时,Java对控制台IO程序的支持并不是很好,甚至再简单的范例中都有些难以使用,但基于文本、控制台的Java 程序也需要我们来了解。

Java IO通过Stream(流)来实现。关于流,你可以理解为是一种“数据的管道”。管道中流动的东西可以是基于字节,也可以是基于字符的等。就好像管道里面可以流动水,也可以流动石油一样。而对应于流还有一个概念:输入、输出设备。这些设备可以是磁盘文件、键盘(输入设备)、显示器(输出设备)、打印机(输出设备)、网络套接字等等。

 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

下面,我们就来了解“流”。

Java中定义了两种类型的流:字节型,和字符型。

字节流:处理字节的输入和输出。包括读写二进制数据等方面的内容。

字符流:处理字符的输入和输出。他采用的是Unicode编码,可以实现国际化。使用字符流的另外一个好处就是:字符流比字节流更有效率。

 

:::::::::::::::::::::::::::::::字节流:::::::::::::::::::::::::::::::::::::

字节流包含两个顶层抽象类:InputStreamOutputStream。如下图所示。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

               图1InputStream抽象类

              

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                图2OutpurStream抽象类

 

     从上面的两个抓图(抓图自J2SE 142 DOC)中,我们可以看出一下几点:

      1:字节流的两个顶层类是抽象类,分别是:InputStreamOutputStream

      2:每个抽象类都有子类来实现具体的功能,处理不同的设备的输入和输出。

 

下面简单介绍字节流的几个常用子类:::

字节流类

功能简单介绍

DataInputStream

包含了读取Java标准数据类型的输入流

DataOutputStream

包含了写Java标准数据类型的输出流

ByteArrayInputStream

从字节数组读取的输入流

ByteArrayOutputStream

写入字节数组的输出流

FileInputStream

从文件读入的输入流

FileOutputStream

写入文件的输出流

PrintStream

包含最常见的Print()和Println()的输出流

PushbackInputStream

返回一个字节到输入流,主要用于编译器的实现

PipedInputStream

输出管道

PipedOutputStream

输入管道

SequenceInputStream

n个输入流联合起来,一个接一个按一定顺序读取

RandomAccessFile

随机访问文件

BufferInputStream

缓冲输入流

BufferOutputStream

缓冲输出流

FilterInputStream

实现了InputStream Interface

FilterOutputStream

实现了OutputStream Interface

InputStream

抽象类,描述流的输入

OutputStream

抽象类,描述流的输入

 

      抽象类InputStreamOutpurStream定义了实用的方法,其中最主要的是read()和

write()。这两个方法在InputStreamOutputStream中声明为抽象方法,由子流类overwrite实现。

 

初级 Java I/O 综述(二)

:::::::::字节流::::::::::::::::::  同字节流类似,字符流也是通过两个顶层的抽象类Reader和Writer的子类来实现对Unicode字符流的处理的。           ...
  • PaleSting
  • PaleSting
  • 2004年01月14日 11:11
  • 1316

初级 Java I/O 综述(三)

抽象类Reader和Writer定义了实用的方法,其中最主要的是read()和write()。这两个方法在Reader和Writer中声明为抽象方法,由子流类overwrite实现。    下面还是简...
  • PaleSting
  • PaleSting
  • 2004年01月14日 11:11
  • 1101

Java I/O 流详解

原文地址: http://blog.csdn.net/jiangwei0910410003/article/details/22376895 摘要: Java 流在处理上分为字符流和...
  • jason_rainbow
  • jason_rainbow
  • 2016年03月17日 11:40
  • 439

深入理解 java I/O

Java 的 I/O 类库的基本架构 I/O 问题是任何编程语言都无法回避的问题,可以说 I/O 问题是整个人机交互的核心问题,因为 I/O 是机器获取和交换信息的主要渠道。在当今这个数据大爆炸...
  • Mr_Tim
  • Mr_Tim
  • 2016年04月06日 11:42
  • 872

Java异常处理和I/O处理

1.Java核心包: java.lang,java.awt,java.applet,java.io,java.util 其他:java.net,java.math,java.rmi,java....
  • u010941185
  • u010941185
  • 2016年04月09日 17:17
  • 349

《JAVA I/O最详解》

刚开始学Java时候,一直搞不懂Java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂。而且没有结合到java7 的最新技术,所以自己结合API来整理一下,有错的话请指正,...
  • self_realian
  • self_realian
  • 2016年07月19日 17:31
  • 1925

Java I/O (第二版)

                                     Java I/O         Java I/OJava™ I/O, 2nd EditionBy Elliotte Rust...
  • weizhaozhe
  • weizhaozhe
  • 2009年03月03日 13:34
  • 1357

说说 Java I/O 系统之 I/O 流的典型用法(带示例)

下面将要说到的这些示例,所有的异常处理都被简化给了控制台。在实际项目中,建议加入更复杂的错误处理能力。1 读取文件(带缓冲)如果要打开一个文件,从文件中读取字符,那么可以使用 FileInputRea...
  • deniro_li
  • deniro_li
  • 2017年06月29日 17:42
  • 381

java i/o操作

1. I/O介绍:中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java.io是大多数面向数据流...
  • jiachangbin1989
  • jiachangbin1989
  • 2016年04月19日 16:07
  • 1047

JavaI/O体系详解

Java中IO操作主要是指使用Java进行输入,输出操作,Java中所有的IO操作类都存放在Java.io包中,在使用时需要导入此包。 在整个Java.io包中最重要的就是5个类和一个接口。5个类指的...
  • htq__
  • htq__
  • 2016年03月27日 19:36
  • 961
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:初级 Java I/O 综述(一)
举报原因:
原因补充:

(最多只允许输入30个字)