开发工具与关键技术:Java中的I/O(输入/输出)
作者:邓崇富
撰写时间:2019 年4 月 12 日
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
一、输入流:
- InputStream类是字节输入流的抽象类,是所有字节的输入流的父类。该类中所有方法遇到错误时都会引起IOException异常。下面是对该类中的一些方法的简要说明:
- Read()方法:从输入流中读取数据的下一个字节。返回0~255范围内的int字节值,如果因为已经到达流末而没有可用的字节,则返回-1.
- Read(byte[]b):从输入流中读入一定长度的字节,并以整数的形式返回字节数。
- Mark(int readlimit)方法:在输入流的当前位置放置一个标记,readlimit参数告知此输入流在标记位置失效之前允许读取字节数。
- Reset()方法:将输入指针返回到当前所做的标记处。
- Skip(long n)方法:跳过输入流上的n个字节并返回实际跳过的字节数。
- markSupported()方法:如果当前流支持mark()/reset()操作就返回true.
- Close方法:关闭此输入流并稀放与该关联的所有系统资源。
InputStream类的层次结构如下图:
二、输出流:
- OutputStream 类是字节输出流的抽象类,此抽象类是表示输出字节流的所有类的超类。
OutputStream类的具体层次如下图:
OutputStream类中的所有方法均返回 void ,在遇到错误时会引发IOException 异常。下面对OutputStream类中方法做简单的介绍:
- Write(int b)方法:将指定的字节写入此输出流。
- Write(byte[] b)方法:将b个字节从指定的byte数组写入此输出流。
- Write(byte[] b,int off,int len)方法:将指定byte数组中从偏移量off开始的len个字节写入此输出流。
- Flush()方法:彻底完成输出并清空缓存区。
- Close()方法:关闭输出流。
Writer类是字符输出流的抽象类,所有字符输出类的实现都是它的子类。Writer类的层次如下图:
- File类的例子:
- 文件的创建与删除
可以使用File类创建一个文件对象。有以下3种构造方法来创建文件对象:
- File(String pathname):
该构造方法通过将给定路径名字符串转换为抽象路径名来创建一个新File实例
语法如下:
new File(String pathname)
其中,pathname指路径名称(包括文件名)
例如:File file = new File(“D:/ed.txt”);
- File(String parent, String child):
该构造方法根据定义的父类路径和子类路径字符串(包括文件名)创建一个新的File对象
语法如下:
new File(String parent, String child);
parent:父类路径字符串。例如:D:/或D:/txt
child:子类路径字符串。例如:letter.txt
- File(File f, String child):
该构造方法根据parent抽象路径名和child路径名字符串创建一个新File实例。
语法如下:
new File(File f, String child)
f:父路径对象。例如:D:/doc
child:子路径字符串。例如:letter.txt.
例子详细代码如下图: