[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 指定的路径名 (移动,重命名)