[TOC]
1.输入流
InputStream 抽象类(字节输入流)和 Reader 抽象类(字符输入流)
1.1 InputStream字节输入流
- read():读入一个8字节的数据
- read(byte[] b):读取数据到b字节数组中
- read(byte[] b,int off,int len):读取数据到b字节数组中,off数组开始保存位置的下标,len读取的字节数
- close():关闭输入流
- available():返回读取的字节流的位数
- skip(long n):输入流跳过n字节数目
- 首先使用 markSupported() 判断,如果可以重复读取,则使用 mark(int readLimit) 方法进行标记,标记完成之后可以使用 read() 方法读取标记范围内的字节数,最后使用 reset() 方法使输入流重新定位到标记的位置,继而完成重复读取操作。
- markSupported():输入流是否可以重复读取
- mark(int readLimit):如果输入流可以被重复读取,从流的当前位置开始设置标记
- reset():使输入流重新定位到刚才被标记的位置,这样可以重新读取标记过的数据
1.1.1 子类
ByteArrayInputStream 类:将字节数组转换为字节输入流,从中读取字节
FileInputStream 类:从文件中读取数据。
FileInputStream(File file):通过打开一个到实际文件的连接来创建一个 FileInputStream,该文件通过文件系统中的 File 对象 file 指定。
FileInputStream(String name):通过打开一个到实际文件的链接来创建一个 FileInputStream,该文件通过文件系统中的路径名 name 指定。SequenceInputStream 类:将多个字节输入流串联成一个字节输入流。
PipedInputStream 类:连接到一个 PipedOutputStream(管道输出流)。
ObjectInputStream 类:将对象反序列化。
1.2 Reader字符输入流
- close()、mark()、skip() 和 reset() ,read()
1.2.1 子类
- CharArrayReader 类:将字符数组转换为字符输入流,从中读取字符。
- StringReader 类:将字符串转换为字符输入流,从中读取字符。
- BufferedReader 类:为其他字符输入流提供读缓冲区。
- PipedReader 类:连接到一个 PipedWriter。
- InputStreamReader 类:将字节输入流转换为字符输入流,可以指定字符编码。
- FileReader
2. 输出流
OutputStream 抽象类(字节输出流)和 Writer 抽象类(字符输出流)
2.1 OutputStream 字节输出流
- write(b):指定字节数写进输出流
- write(byte[] b):指定字节数组写进输出流
- write (byte[] b,int off,int len):指定字节数组从 off 位置开始的 len 字节的内容写入输出流
- close():关闭输出流
- flush():刷新输出流,强行将缓冲区的内容写入输出流
2.1.1 子类
ByteArrayOutputStream 类:向内存缓冲区的字节数组中写数据。
FileOutputStream 类:向文件中写数据。
FileOutputStream(File file):创建一个文件输出流,参数 file 指定目标文件。
FileOutputStream(File file,boolean append):创建一个文件输出流,参数 file 指定目标文件,append 指定是否将数据添加到目标文件的内容末尾,如果为 true,则在末尾添加;如果为 false,则覆盖原有内容;其默认值为 false。
FileOutputStream(String name):创建一个文件输出流,参数 name 指定目标文件的文件路径信息。
FileOutputStream(String name,boolean append):创建一个文件输出流,参数 name 和 append 的含义同上。PipedOutputStream 类:连接到一个 PipedlntputStream(管道输入流)。
ObjectOutputStream 类:将对象序列化。
2.2 Write字符输出流
- close()、flush()、write()方法和append()
| 方法名及返回值类型 | 说明 | |
|---|---|---|
| void write(int c) | 向输出流中写入一个字符 | |
| void write(char[] cbuf) | 把参数 cbuf 指定的字符数组中的所有字符写到输出流中 | |
| void write(char[] cbuf,int off,int len) | 把参数 cbuf 指定的字符数组中的若干字符写到输出流中。其中,off 指定字符数组中的起始下标,len 表示元素个数 | |
| void write(String str) | 向输出流中写入一个字符串 | |
| void write(String str, int off,int len) | 向输出流中写入一个字符串中的部分字符。其中,off 指定字符串中的起始偏移量,len 表示字符个数 | append(char c) 将参数 c 指定的字符添加到输出流中 |
| append(charSequence esq) | 将参数 esq 指定的字符序列添加到输出流中 | |
| append(charSequence esq,int start,int end) | 将参数 esq 指定的字符序列的子序列添加到输出流中。其中,start 指定 | |
| 子序列的第一个字符的索引,end 指定子序列中最后一个字符后面的字符 | ||
| 的索引,也就是说子序列的内容包含 start 索引处的字符,但不包括 end | ||
| 索引处的字符 |
2.2.1 子类
- CharArrayWriter 类:向内存缓冲区的字符数组写数据。
- StringWriter 类:向内存缓冲区的字符串(StringBuffer)写数据。
- BufferedWriter 类:为其他字符输出流提供写缓冲区。
- PipedWriter 类:连接到一个 PipedReader。
- OutputStreamReader 类:将字节输出流转换为字符输出流,可以指定字符编码。
- FileWriter
3. 系统流
- System.in:标准输入流,默认设备是键盘。
- System.out:标准输出流,默认设备是控制台。
- System.err:标准错误流,默认设备是控制台
4. File类
4.1 构造方法
File(String path):如果 path 是实际存在的路径,则该 File 对象表示的是目录;如果 path 是文件名,则该 File 对象表示的是文件。
File(String path, String name):path 是路径名,name 是文件名。
File(File dir, String name):dir 是路径对象,name 是文件名。
4.2 api
- length():文件大小
- isFile():是否是文件
- lastModified():文件最后修改时间
- isDirectory():是否是路径目录
- canRead():是否可读取
- canWrite():是否可写入
- isHidden():是否是隐藏文件
- getName():文件名称
- getPath():文件路径
- getAbsolutePath():文件绝对路径
- getParent():获取父目录
- exists(): 判断文件是否存在
- delete():删除文件
- list():返回当前File下文件列表、
- list(FilenameFilter):满足过滤器的文件列表
- mkdir():创建文件夹
- mkdirs(): 创建文件夹
- renameTo(File): 将当前 File 对象指定的文件更名为给定参数 File 指定的路径名 (移动,重命名)