JAVA IO类库详解
一、InputStream类
1、表示字节输入流的所有类的超类,是一个抽象类。
2、类的方法
方法 |
参数 |
功能详述 |
InputStream |
构造方法 |
|
available |
如果用inputStream对象的available()方法获取流中可读取的数据大小,通常我们调用这个函数是在下载文件或者对文件进行其他处理时获取文件的总大小。 |
|
read |
从输入流中读取数据的下一个字节 |
|
mark |
(int readlimit) |
在输入流中标记当前的位置 |
markSupported |
判断输入流是否支持mark()和reset()方法 |
|
reset |
将流重新定位到流最后一次调用mark方法时的位置 |
|
skip |
(long n) |
跳过或丢弃输入流中的n个字节 |
二、OutputStream类
1、表示字节输出流的所有类的超类,是一个抽象类。
2、类的方法
方法 |
参数 |
功能详述 |
OutputStream |
构造器 |
|
write |
将指定的字节写入此输出流 |
|
flush |
涮新输出流并强制写出所有缓冲的输出字节 |
|
close |
关闭输出流 |
|
三、Reader类
1、读取字符流的抽象类。子类必须实现的方法只有 read(char[], int, int) 和 close()。
2、类的方法
方法 |
参数 |
功能详述 |
字段lock |
用于同步针对流的操作对象 |
|
Reader |
构造器,同步其自身 |
|
Reader |
(Object lock) |
构造器,同步给定的对象 |
read |
读取单个字符 |
|
mark |
标记流中的当前位置 |
|
markSupporte |
判断流是否支持mark方法 |
|
ready |
判断是否准备读取此流 |
|
reset |
重置流 |
|
skip |
跳过n个字符 |
|
close |
关闭 |
|
四、Writer类
1、写入字符流的抽象类。子类必须实现的方法仅有 write(char[], int, int)、flush() 和 close()。
2、类的方法
方法 |
参数 |
功能详述 |
字段lock |
同步流的操作对象 |
|
Writer |
构造器,同步其自身 |
|
Writer |
(Object lock) |
构造器,同步给定的对象 |
write |
写当个字符 |
|
append |
将指定字符添加到流中 |
|
flush |
涮新流的缓冲 |
|
close |
关闭 |
|
五、File类
1、文件和目录路径名的抽象表示形式。
2、类的方法
方法 |
参数 |
功能详述 |
|||
字段pathSeparatorChar |
路径的斜线分隔符,字符表示 |
||||
字段pathSeparator |
路径的斜线分隔符,字符串表示 |
||||
字段separatorChar |
路径的冒号分隔符,字符表示 |
||||
字段separator |
路径的冒号分隔符,字符串表示 |
||||
File |
(File parent, String child) |
根据父文件的抽象路径和子路径创建实例 |
|||
File |
(String pathnaem) |
通过将给定路径名字字符串转换为抽象路径来创建实例 |
|||
File |
(String parent, String child) |
根据父路径和子路径来创建实例 |
|||
File |
(URI uri) |
通过将给定的 file: URI 转换为一个抽象路径名来创建实例 |
|||
创建文件或目录 |
|||||
createNewFile |
不存在具有此抽象路径名指定名称的文件时,创建一个空文件 |
||||
createTempFile |
(String prefic, String suffix) |
在默认文件目录中,根据前缀和后缀创建一个空文件 |
|||
createTempFile |
(String prefic, String suffix, File directory) |
在指定目录中,根据前缀和后缀创建一个空文件 |
|||
获取抽象路径 |
|||||
getAbsoluteFile |
返回抽象路径名的绝对路径名。 |
||||
getAbsolutePath |
返回抽象路径名的绝对路径名字符串。 |
||||
getCanonicalFile |
返回抽象路径名的规范形式。 |
||||
getCanonicalPath |
返回抽象路径名的规范路径名字字符串。 |
||||
getFreeSpace |
返回抽象路径名指定分区中未分配的字节数。 |
||||
getName |
返回抽象路径名表示的文件或目录的名称。 |
||||
getParent |
返回抽象路径的父目录的路径名字符串。 |
||||
getParentFile |
返回抽象路径的父目录的抽象路径名。 |
||||
getPath |
将抽象路径名转换为一个路径名字符串。 |
||||
getTotalSpace |
返回抽象路径名指定的分区大小。 |
||||
getUsableSpace |
返回抽象路径名指定的分区上可用于此虚拟机的字节数。 |
||||
设置抽象路径 |
|||||
setExecutable |
(boolean executable) |
设置抽象路径名所有者执行权限 |
|||
setExecutable |
(boolean executable, Boolean ownerOnly) |
设置抽象路径名所有者或所有用户的执行权限 |
|||
setLastModified |
(long time) |
设置抽象路径名的指定的文件或目录的最后一次修改时间 |
|||
setReadable |
(boolean readable) |
设置抽象路径名的所有者或所有用户的读权限。 |
|||
setReadable |
(boolean readable, Boolean ownerOnly) |
设置抽象路径名的所有者或所有用户的读权限。 |
|||
setReadOnly |
设置路径或文件为读权限 |
||||
setWritable |
(Boolean writable) |
设置抽象路径名的所有者或所有用户的写权限 |
|||
setWritable |
(Boolean writable, Boolean ownerOnly) |
设置抽象路径名的所有者或所有用户的写权限 |
|||
抽象路径其他操作 |
|||||
compareTo |
(File pathname) |
按字母顺序比较两个抽象路径名 |
|||
delete |
删除抽象路径名表示的文件或目录 |
||||
deleteOnExit |
虚拟机终止时,请求删除抽象路径名表示的文件或目录 |
||||
equals |
(Object obj) |
测试此抽象路径名与给定对象是否相等。 |
|||
exists |
测试此抽象路径名表示的文件或目录是否相等。 |
||||
hashCode |
计算抽象路径名的哈希码。 |
||||
isAbsolute |
判断抽象路径名是否为绝对路径名 |
||||
isDirectory |
判断抽象路径名表示的文件是否是一个目录。 |
||||
isFile |
判断抽象路径名表示的文件是否是一个标准文件。 |
||||
isHidden |
判断抽象路径名表示的文件是否是一个隐藏文件。 |
||||
lastModified |
返回抽象路径名表示的文件最后一次被修改的时间。 |
||||
length |
返回由此抽象路径名表示的文件的长度。 |
||||
list |
返回抽象路径名下文件和目录的字符串。 |
||||
listFiles |
返回抽象路径名下文件。 |
||||
listRoots |
列出可用的文件系统跟。 |
||||
mkdir |
创建抽象路径名指定的目录。 |
||||
mkdirs |
创建抽象路径名指定的目录,包括所有必须但不存在的父目录。 |
||||
renameTo |
(File dest) |
重新命名抽象路径名表示的文件。 |
|||
toString |
返回抽象路径名的字符串。 |
||||
toURI |
构造抽象路径名的file:URI |
||||
六、RandomAccessFile类
1、支持对随机访问文件的读取和写入。
2、类的方法
方法 |
参数 |
功能详述 |
RandomAccessFile |
(File file, String mode) |
创建文件随机读写流。 |
RandomAccessFile |
(String name, String mode) |
创建文件随机读写流,文件由指定名称指定。 |
getChannel |
返回与此文件关联的唯一FileChannel对象 |
|
getFD |
返回与此关联的不透明文件描述符对象。 |
|
getFilePointer |
返回此文件中的当前偏移量。 |
|
read |
读 |
|
length |
返回文件长度 |
|
readBoolean |
从文件读取一个boolean |
|
readByte |
从文件读取一个有符号的八位值 |
|
readChar |
从文件读取一个字符 |
|
readDouble |
从文件读取一个double |
|
readFloat |
从文件读取一个Float |
|
readFully |
从当前文件指针开始读数据 |
|
readInt |
从文件读取一个有符号32位整数 |
|
readLine |
从文件读取文本的下一行 |
|
readLong |
从文件读取一个有符号的64为整数 |
|
readShort |
从文件读取一个有符号的16为整数 |
|
readUnsignedByte |
从文件读取一个有符号的8为整数 |
|
readUnsignedShort |
从文件读取一个有符号的16为整数 |
|
readUTF |
从文读取一个字符串 |
|
seek |
设置文件的偏移量(文件开头) |
|
setLength |
设置文件的长度 |
|
skipBytes |
尝试跳过输入的 n 个字节以丢弃跳过的字节 |
|
write |
写入数据 |
|
writeBoolean |
向文件写入一个boolean |
|
writeByte |
按单字节向文件写入byte |
|
writeBytes |
按字节序列向文件写入 |
|
writeChar |
按双字节向文件写入char |
|
writeChars |
按双字符序列向文件写入 |
|
writeDouble |
向文件写入 |
|
writeFloat |
向文件写入 |
|
writeInt |
按4字节向文件写入int |
|
writeLong |
按8字节向文件写入long |
|
writeShort |
按2字节向文件写入short |
|
writeUTF |
使用 modified UTF-8 编码以与机器无关的方式将一个字符串写入该文件。 |
|
close |
关闭 |
|
七、InputStreamReader类
1、字节转换字符流类。
2、类方法
方法 |
参数 |
功能详述 |
|
InputStreamReader |
(InputStream in) |
默认字符集 |
|
InputStreamReader |
(InputStream in, Charset cs) |
给定字符集 |
|
InputStreamReader |
(InputStream in, CharsetDecoder dec) |
给定解码器 |
|
InputStreamReader |
(InputStream in, String charsetName) |
指定字符集 |
|
getEncoding |
返回流使用的字符编码的名称。 |
||
read |
读取 |
||
ready |
判断流是否已经准备好用于读取。 |
||
八、OutputStreamWriter类
1、字符转换字节流类。
2、类方法
方法 |
参数 |
功能详述 |
||
OutputStreamWriter |
(OutputStream out) |
默认字符编码 |
||
OutputStreamWriter |
(OutputStream out, Charset cs) |
给定字符集 |
||
OutputStreamWriter |
(OutputStream out, CharsetEncoder enc) |
给定解码器 |
||
OutputStreamWriter |
(OutputStream out, String charsetName) |
指定字符集 |
||
getEncoding |
返回流使用的字符编码的名称 |
|||
write |
写入 |
|||
flush |
刷新流的缓冲 |
|||
close |
关闭流 |
|||
九、ByteArrayInputStream
1、内存输入流
2、类方法
方法 |
参数 |
功能详述 |
|
ByteArrayInputStream |
(byte[] buf) |
buf为流缓冲区数组 |
|
ByteArrayInputStream |
(byte[] buf, int off, int len) |
buf为流缓冲区数组 |
|
字段buf |
由流的创建者提供的byte数组。 |
||
字段count |
比输入流缓冲区中最后一个有效字符的索引大一的索引。 |
||
字段mark |
流中当前标记的位置。 |
||
字段pos |
要输入流缓冲区中读取的下一个字符的索引。 |
||
available |
返回可从此输入流读取(或跳过)的剩余字节数 |
||
read |
从输入流中读取数据 |
||
skip |
从输入流中跳过n个输入字节 |
||
reset |
将缓冲区的位置重置为标记位置 |
||
mark |
设置流中的当前标记位置 |
||
markSupported |
判断流是否支持mark / reset |
||
clsose |
关闭 |
||
十、ByteArrayOutputStream类
方法 |
参数 |
功能详述 |
||
ByteArrayOutputStream |
创建一个新的byte数组输出流 |
|||
ByteArrayOutputStream |
(int size) |
创建一个新的指定大小的byte数组输出流 |
||
字段buf |
存储数据的缓冲区 |
|||
字段count |
缓冲区中的有效字节数 |
|||
write |
将字节写入输出流 |
|||
writeTo |
将byte数组写入输出流 |
|||
toString |
使用默认的字符集,通过解码字节将缓冲区内容转换为字符串。 |
|||
toByteArray |
创建一个新分配的byte数组 |
|||
size |
返回缓冲区的当前大小 |
|||
reset |
将count字段重置为0,丢弃输出流中目前已积累的所有输出。 |
|||
close |
关闭 |
|||
十一、PipedInputStream类
1、管道输入流,用于接收从另一个现场输出的数据。
2、类方法
方法 |
参数 |
功能详述 |
|
PipedInputStream |
创建未连接的流 |
||
PipedInputStream |
(int pipeSize) |
创建未连接的流,并且设置缓冲区大小 |
|
PipedInputStream |
(PipedOutputStream src) |
创建连接的流 |
|
PipedInputStream |
(PipedOutputStream src, int size) |
创建连接的流,并且设置缓冲区大小 |
|
字段buffer |
数据循环缓冲区 |
||
字段in |
接收下一个数据将保存的位置索引 |
||
字段out |
数据读取位置的前一个位置索引 |
||
字段PIPE_SIZE |
数据缓冲区的默认大小 |
||
read |
读取流中的下一个数据 |
||
receive |
接收数据字节 |
||
connect |
连接管道输出流 |
||
available |
返回可以不受阻塞地从此输入流中读取的字节数。 |
||
close |
关闭 |
||
十二、PipedOutputStream类
1、管道输出流。用于将线程的数据输出到另一个线程中。
2、类方法
方法 |
参数 |
功能详述 |
PipedOutputStream |
创建未连接的流 |
|
PipedOutputStream |
(PipedInputStream snk) |
创建连接的流 |
write |
将数据写入传送的管道输出流。 |
|
flush |
刷新流并强制写出所有缓冲的输出字节。 |
|
connect |
将流连接到指定管道输入流 |
|
close |
关闭 |