我是靠谱客的博主 冷傲野狼,最近开发中收集的这篇文章主要介绍黑马程序员:Java基础总结----IO(Input Output)流概述,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

黑马程序员:Java基础总结



IO(Input Output)流概述

  ASP.Net+Android+IO开发 .Net培训 、期待与您交流!




  IO(Input Output)流概述

 通过数据流、序列化和文件系统提供系统输入和输出。 


流按操作数据分为两种:字节流与字符流 。

流按流向分为:输入流,输出流。



IO流常用基类

字节流的抽象基类:

InputStream此抽象类是表示字节输入流的所有类的超类。
OutputStream此抽象类是表示输出字节流的所有类的超类。


字符流的抽象基类:

Reader用于读取字符流的抽象类。
Writer写入字符流的抽象类。


他们都是抽象类,要new 就必须有匿名内部类实现相应方法:
            InputStream inputStream =  new  InputStream() {
                  
                    @Override
                    public  int  read()  throws  IOException {
                          //  TODO  Auto-generated method stub
                          return  0;
                  }
            };

注:由这四个类派生出来的子类名称都是 以其父类名作为子类名的后缀。

字节流已知子类(以inputStream部分为例)

FileInputStreamFileInputStream 从文件系统中的某个文件中获得输入字节。
BufferedInputStreamBufferedInputStream 为另一个输入流添加一些功能,即缓冲输入以及支持 mark 和 reset 方法的能力。
ObjectInputStreamObjectInputStream 对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化。
PipedInputStream管道输入流应该连接到管道输出流;管道输入流提供要写入管道输出流的所有数据字节。
DataInputStream数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型。
ByteArrayInputStreamByteArrayInputStream 包含一个内部缓冲区,该缓冲区包含从流中读取的字节。

不常用
FilterInputStreamFilterInputStream 包含其他一些输入流,它将这些流用作其基本数据源,它可以直接传输数据或提供一些额外的功能。
PushbackInputStreamPushbackInputStream 为另一个输入流添加性能,即“推回 (push back)”或“取消读取 (unread)”一个字节的能力。
SequenceInputStreamSequenceInputStream 表示其他输入流的逻辑串联。


字符流已知子类(以reader部分为例)

FileReader用来读取字符文件的便捷类。
BufferedReader从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
LineNumberReader跟踪行号的缓冲字符输入流。

不常用
CharArrayReader此类实现一个可用作字符输入流的字符缓冲区。
FilterReader用于读取已过滤的字符流的抽象类。
PipedReader传送的字符输入流。
PushbackReader允许将字符推回到流的字符流 reader。
StringReader其源为一个字符串的字符流。


字节流与字符流间已知桥梁
InputStreamReaderInputStreamReader 是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。
OutputStreamWriterOutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的 charset 将要写入流中的字符编码成字节。

IO流中直属于obj的类
File文件和目录路径名的抽象表示形式。
RandomAccessFile此类的实例支持对随机访问文件的读取和写入。该类只能操作文件


IO程序的书写

导入IO包中的类--------进行IO异常处理-------- 在finally中对流进行关闭

流操作规律:
明确源和目的:

数据源:读取,InputStream和Reader

目的:写入:OutStream和Writer

数据是否是纯文本:

是:字符流,Reader,Writer

否:字节流,InputStream,OutStream

明确数据设备:

源设备:内存、硬盘、键盘

目的设备:内存、硬盘、控制台

是否提高效率:用BufferedXXX

源设备,
     键盘 System.in,硬盘 FileStream,内存 ArrayStream。
目的设备:
     控制台 System.out,硬盘FileStream,内存 ArrayStream





  ASP.Net+Android+IO开发 .Net培训 、期待与您交流!

最后

以上就是冷傲野狼为你收集整理的黑马程序员:Java基础总结----IO(Input Output)流概述的全部内容,希望文章能够帮你解决黑马程序员:Java基础总结----IO(Input Output)流概述所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部