查找某个特定文件可以使用文件过滤器,FilenameFilter.
基类 | 数据单元 | |
字节流 | InputStream/OutputStream | 8位-->字节 |
字符流 | Reader/Writer | 16位-->字符 |
因为大多数差不多,就是数据单元,一个是字节,一个是字符,最后的单位参数不同。
记得使用流打开文件要用file.close(),方法关闭文件,程序里面打开的文件IO资源不属于内存里的资源,垃圾回收机制无法回收该资源。
-
I/O处理流
字节流输入 | 字节流输出 | 字符流输入 | 字符流输出 | |
访问文件 | FileInputStream | FileOutputStream | FileReader | FileWriter |
缓冲流 | BufferedInputStream | BufferedOutputStream | BufferReader | BufferWriter |
访问字符串 | StringReader | StringWriter |
这些方法针对不同的数据类型,不同的数据单位使用,许多方法共通的,只是单位不相同。
StringReader和StringWriter是字符串节点,不是文件节节点,由于String是不可变的字符串对象,所以StringWriter都用StringBuffer作为输出节点。
-
转换流
OutputStreamWriter : 将字节输出流 --------> 字符输出流
Java虚拟机读取其他进程的数据
-
InputStream getErrorStream():获取子进程的错误流
-
InputStream getInputStream():获取子进程的输入流
-
OutputStream getOutputStream():获取子进程的输出流
-
long getFilePointer():返回文件记录指针的当前位置。
-
void seek(long pos):将文件记录指针定位到pos位置。
-
r 以只读方式打开指定文件。
-
rw 以读、写方式打开指定文件。如果文件不存在就尝试创建此文件。
上面为常用的两种模式。
多线程断点续传的网络下载工具,就可以通过RandomAccessFile来实现。
网络断开以后,再次开始下载时,每个RandomAccessFile都根据记录文件指针的文件中记录的位置,继续向下写数据。