码迷,mamicode.com
首页 > 其他好文 > 详细

第十周课程总结

时间:2019-11-03 20:03:48      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:占用   方法   总结   writer   body   style   seq   输出   syn   

Java IO中常用的类:

 

说明
File 文件类
RandomAccessFile 随机存取文件类
InputStream 字节输入流
OutputStream 字节输出流
Reader 字符输入流
Writer 字符输出流

 

1)  字节流:数据流中最小的数据单元是字节
2)  字符流:数据流中最小的数据单元是字符, Java中的字符是Unicode编码,一个字符占用两个字节。

在java中IO操作也是有相应步骤的,以文件的操作为例,主要操作流程如下:

(1)使用File类打开一个文件。

(2)通过字节流或字符流的子类指定输出的位置。

(3)进行读写操作。

(4)关闭输入/输出。

 

字节流:主要是操作byte类型数据,以byte数组为准,主要操作类就是outputStream类和InputStream类。

OutputStream类的常用方法:

方法方法介绍
public abstract void write(int b) 写入一个字节,可以看到这里的参数是一个 int 类型,对应上面的读方法,int 类型的 32 位,只有低 8 位才写入,高 24 位将舍弃。
public void write(byte b[]) 将数组中的所有字节写入,和上面对应的 read() 方法类似,实际调用的也是下面的方法。
public void write(byte b[], int off, int len) 将 byte 数组从 off 位置开始,len 长度的字节写入
public void flush() 强制刷新,将缓冲中的数据写入
public void close() 关闭输出流,流被关闭后就不能再输出数据了

 

InputStream类的常用方法:

方法方法介绍
public abstract int read() 读取数据
public int read(byte b[]) 将读取到的数据放在 byte 数组中,该方法实际上是根据下面的方法实现的,off 为 0,len 为数组的长度
public int read(byte b[], int off, int len) 从第 off 位置读取 len 长度字节的数据放到 byte 数组中,流是以 -1 来判断是否读取结束的
public long skip(long n) 跳过指定个数的字节不读取
public int available() 返回可读的字节数量
public void close() 读取完,关闭流,释放资源
public synchronized void mark(int readlimit) 标记读取位置,下次还可以从这里开始读取,使用前要看当前流是否支持,可以使用 markSupport() 方法判断
public synchronized void reset() 重置读取位置为上次 mark 标记的位置
public boolean markSupported() 判断当前流是否支持标记流,和上面两个方法配套使用

 

字符流:在程序中一个字符等于两个字节,java提供了Reader和Writer两个专门操作字符流的类。

Writer类的常用方法:

方法方法介绍
public void write(char cbuf[]) 写入一个字符数组
abstract public void write(char cbuf[], int off, int len) 从字符数组的 off 位置写入 len 数量的字符
public Writer append(CharSequence csq) 追加吸入一个字符序列
abstract public void flush() 强制刷新,将缓冲中的数据写入

Reader类的常用方法:

方法方法介绍
public int read(java.nio.CharBuffer target) 读取字节到字符缓存中
public int read() 读取单个字符
abstract public int read(char cbuf[], int off, int len) 从 off 位置读取 len 长度的字符到 char 数组中
public boolean ready() 和上面的 available() 方法类似
public void mark(int readAheadLimit) 标记读取位置,下次还可以从这里开始读取,使用前要看当前流是否支持,可以使用 markSupport() 方法判断
abstract public void close() 关闭流释放相关资源

 

字节流与字符流的区别:字节流直接操作文件,而字符流会先将数据放在缓存之后,再从缓存写入文件。

 

 

第十周课程总结

标签:占用   方法   总结   writer   body   style   seq   输出   syn   

原文地址:https://www.cnblogs.com/noacgnnolife/p/11788472.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!