Java IO流分析整理

原创 2012年03月23日 17:20:58

Java中的流,可以从不同的角度进行分类。

按照数据流的方向不同可以分为:输入流和输出流。

按照处理数据单位不同可以分为:字节流和字符流。

按照实现功能不同可以分为:节点流和处理流。

 

输出流:

 

输入流:

因此输入和输出都是从程序的角度来说的。

字节流:一次读入或读出是8位二进制。

字符流:一次读入或读出是16位二进制。

字节流和字符流的原理是相同的,只不过处理的单位不同而已。后缀是Stream是字节流,而后缀是ReaderWriter是字符流。

 

节点流:直接与数据源相连,读入或读出。

直接使用节点流,读写不方便,为了更快的读写文件,才有了处理流。

处理流:与节点流一块使用,在节点流的基础上,再套接一层,套接在节点流上的就是处理流。

Jdk提供的流继承了四大类:InputStream(字节输入流)OutputStream(字节输出流),Reader(字符输入流),Writer(字符输出流)。

以下是javaio中常用的流。

 

字节输入流:

字节输出流:

字符输入流:

字符输出流:

简单介绍其上图:

对文件进行操作:FileInputStream(字节输入流),FileOutputStream(字节输出流),FileReader(字符输入流),FileWriter(字符输出流)

对管道进行操作:PipedInputStream(字节输入流),PipedOutStream(字节输出流),PipedReader(字符输入流),PipedWriter(字符输出流)

PipedInputStream的一个实例要和PipedOutputStream的一个实例共同使用,共同完成管道的读取写入操作。主要用于线程操作。

字节/字符数组:ByteArrayInputStreamByteArrayOutputStreamCharArrayReaderCharArrayWriter是在内存中开辟了一个字节或字符数组。

Buffered缓冲流::BufferedInputStreamBufferedOutputStreamBufferedReader,BufferedWriter,是带缓冲区的处理流,缓冲区的作用的主要目的是:避免每次和硬盘打交道,提高数据访问的效率。

转化流:InputStreamReader/OutputStreamWriter,把字节转化成字符。

数据流:DataInputStreamDataOutputStream

因为平时若是我们输出一个8个字节的long类型或4个字节的float类型,那怎么办呢?可以一个字节一个字节输出,也可以把转换成字符串输出,但是这样转换费时间,若是直接输出该多好啊,因此这个数据流就解决了我们输出数据类型的困难。数据流可以直接输出float类型或long类型,提高了数据读写的效率。

打印流:printStreamprintWriter,一般是打印到控制台,可以进行控制打印的地方。

对象流:ObjectInputStreamObjectOutputStream,把封装的对象直接输出,而不是一个个在转换成字符串再输出。

序列化流:SequenceInputStream

对象序列化:把对象直接转换成二进制,写入介质中。

使用对象流需要实现Serializable接口,否则会报错。而若用transient关键字修饰成员变量,不写入该成员变量,若是引用类型的成员变量为null,值类型的成员变量为0.

相关文章推荐

Java IO最详解

初学java,一直搞不懂java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂。而且没有结合到java7 的最新技术,所以自己来整理一下,有错的话请指正,也希望大家提出宝贵意见...
  • yczz
  • yczz
  • 2014年08月22日 20:14
  • 212864

Java中的IO流系统详解

摘要: Java 流在处理上分为字符流和字节流。字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符、字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组。 Jav...

Java IO流读写文件的几个注意点

     平时写IO相关代码机会挺少的,这两天突然被一个问题折腾一下:读一个文件,然后写到另外一个文件,前后两个文件居然不一样?     解决这个问题之后,总结了几个注意点。1、Reader/Writ...

Java IO流

Java中与IO相关的类有很多,都集中在java.io中,都是以流的形式操作的,流是有一定的顺序,像一个管道一样,它的本质是传输数据。根据数据类型的不同可以分为字节流和字符流,根据流向的不同可以分为输...
  • Decting
  • Decting
  • 2015年08月26日 08:55
  • 1855

java.io中常用的流的功能及特性

IO常用流的功能及特性: 输入流inputStream:只能从中读取字节数据,而不能向其写出数据 输出流OutputStream:只能向其写入字节数据,而不能从中读取数据 输入流inputStr...

Java中常见的IO流及其使用

Java中常见的IO流的介绍及使用: ByteArrayInputStream & ByteArrayOutputStream FileInputStream & FileOutputStream P...

java IO流学习总结

Java中的流,可以从不同的角度进行分类。     按流的方向分:输入流和输出流。     按处理数据单位分:字节流和字符流。     按实现功能分:节点流和处理流。       输出流:     ...

Java之IO流---字节流

1.概述1.1 IO流的引入 IO流在很多语言已有体现,诸如C语言的stdio.h,C++中的iostream。Java中的IO流大抵是用于在控制台、磁盘、内存上进行数据的读写操作,完成数据的传递...

Java IO流学习总结一:输入输出流

Java IO流学习总结一:输入输出流 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/53761199 本文出自【赵彦军的...

Java中IO流文件读取、写入和复制

File f=new File(fileName); //构造文件File类 f.isDirectory(); //判断是否为目录 String[] fileName=f.list(); //获取目...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java IO流分析整理
举报原因:
原因补充:

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