java文件输入输出对象介绍

→基本概念:

  • I/O(Input/Output)
  • 数据源(Data Source)
  • 数据宿(Data Sink)

→Java中把不同的数据源与程序间的数据传输都抽象表述为“流”(Stream),java.io包中定义了多种I/O流类型实现数据I/O功能。

→I/O流分类:

  • 输入流(Input Stream)和输出流(Output Stream)
  • 节点流(Node Stream)和处理流(Processing Stream)
  • 字符流(Character Stream)和字节流(Byte Stream)

# 输入流(Input Stream)和输出流(OutputStream)

1.输入流只能从中读取数据,而不能向其写数据;

2.输出流则只能向其写出数据,而不能从中读取数据;

3.特例:java.io.RandomAccessFile类。

# 节点流(Node Stream)和处理流(ProcessingStream)

1.节点流直接连接到数据源

2.处理流是对一个已存在的流的连接和封装,通过所封装的刘的功能调用实现增强的数据读写功能,处理流并不直接连到数据源

  

# 字符流(Character Stream)和字节流(ByteStream)

1.字节流以字节为单位进行数据传输,每次传送一个或多个字节。

2.字符流以字符为单位进行数据传输,每次传送一个或多个字符。

Java命名惯例

凡是以InputStream 或OutputStream结尾的类型均为字节流,凡是以Reader或Writer 结尾的均为字符流。

 

InputStream

抽象类java.io.InputStream 是所有字节输入流类型的父类,该类中定义了以字节为单位读取数据的基本方法,并在其子类中进行了分化和实现。

◆ 三个基本的 read方法:

Int read()

Int read(byte[] buffer)

Int read(byte[] buffer,int offset,intlength)

◆ 其它方法:

Void close()

Int available()

Skip(long n)

Boolean markSupported()

Void mark(int readlimit)

Void reset()

 

OnputStream

Java.io.OutputStream 与java.io.InputStream对应,是所有字节输出流类型的抽象父类。

◆ 三个基本的 write方法:

Int write ()

Int write (byte[] buffer)

Int write (byte[] buffer,int offset,intlength)

◆ 其它方法:

Void close()

Void flush()

                                                                                                                                                 

Reader

抽象类java.io.Reader是所有字符输入流类型的父类,其中声明了用于读取字符流的有关方法。

◆ 三个基本的 read方法:

Int read()

Int read(char[] buffer)

Int read(char[] buffer,int offset,intlength)

◆ 其它方法:

Void close()

Int available()

Skip(long n)

Boolean markSupported()

Void mark(int readlimit)

Void reset()

Writer

抽象类java.io.Writer是所有字符输出流类型的父类。

◆ 五个基本的 write方法:

Void write (int c)

Void write (char[] buffer)

Void write (char[] buffer,int offset,intlength)

Void write(String string)

Void write(String stirng ,int offset,intlength)

◆ 其它方法:

Void close()

Void flush()

 

常用的I/O流类型(1)

FileInputSteam/FileOutputSteam

 FileInputStream用于读取本地文件中字节数据。

 FileOutputStream用于将字节数据写出到文件。

FileReader/FileWriter

  FileReader用于以字符为单位读取文本文件。

  FileWriter用于将字符数据写出到文本文件中。

BufferedReader/BufferedWriter

BufferedReader用于缓冲读取字符。

BufferedWriter则提供字符的缓冲写出功能。

   常用的I/O流类型(2)

InputStreamReader

1.InputStreamReader可封装字节输入流并从中读取字节数据,然后将之转换为字符。

2.转换时所使用的字符编码可以再构造方法中显示指定,也可以使用平台的默认字符编码。其构造方法格式为:

PublicInputStreamReader(InputStream in)

PublicInputStreamReader(InputStream in,String enc)

OutputStreamWriter

与InputStreamReader对应,OutputStreamWriter可按照特定的字符编码规则吧字符转化为字节写出到她所封装的字节输出流。

   常用的I/O流类型(3)

PrintStream

PrintStream在OutputSteam基础之上提供了增强的功能,即可以方便的输出各种类型数据(而不仅限于byte型)的格式化表示形式。PrintSteam 的方法从不抛出IOException.

PrintWriter

PrintWriter提供了PrintStream的所有的打印方法,其方法也从不抛出IOException.

与PrintSteam的区别:作为处理流使用时,PrintStream只能封装OutputStream类型的字节流,而PrintWriter既可以封装OutputStream,还能够封装Writer类型字符输出流并增强器功能。

   常用的I/O流类型(4)

DataInputStream/DataOutputStream

1.     二者分别实现了DataInput/DataOutput接口

2.     DataInputStream能够以一种与机器无关的方式,直接从底层字节输入流读取Java基本类型和String类型的数据,常用方法包括:

PublicDataInputStream(InputSteam in)

Publicfinal boolean readBoolean()

Publicfinal byte readByte()

Publicfinal char readChar()

Publicfinal double readDouble()

Publicfinal float readFloat()

Publicfinal int readLong()

Publicfinal long readLong()

Publicfinal short readShort()

Publicfinal String readUTF()

3.     DataOutputSteam 则能够直接将Java基本类型和 String类型数据写出到其他的字节输出流。

   常用的I/O流类型(5)

CharArrayReader

CharArrayReader实现了一个可用作字符输入流的字符缓冲区。

CharArrayWriter

CharArrayWriter实现了一个可当作Writer使用的字符输出缓冲区。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值