您的位置:首页 > 大数据 > 人工智能

IO总结 File FileInputStream FileoutputStream BufferedReader BufferedWriter DataInputStream DataOutputS

2014-12-24 16:32 711 查看
IO

File (其各种方法)

构造方法摘要 

File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
File(File parent, String child) 根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。

File(String parent, String child) 根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。 
File(URI uri) 通过将给定的 file: URI 转换为一个抽象路径名来创建一个新的 File 实例。
路径分隔符:separator 和separatorChar:win下是 '\',UNIX下是‘/’。TIPS:

为了实现跨平台的适应性,我们尽量使用File的这些字段分隔路径名和路径。
File的重要方法:

createNewFile() ,如果我们这个文件不存在,那么创建一个到本地系统。

exists(),获取此文件是否存在。存在返回true,否则为false。

delete() ,删除此File对象所映射的真实文件。

getAbsolutePath() ,获取此对象的绝对路径。

isDirectory() ,判断该File对象,是不是目录(文件夹)。

isFile(),判断该File对象,是不是文件(不是文件夹)。
mkdir() ;创建目录,但是如果父目录不存在,就无法创建

mkdirs() ;创建目录,如果没有父目录,就连父目录一起创建

list(),listFile(); 获取出子文件。

//字节流

FileInputStream

FileInputStream用于读取字节流
构造方法具体查询API:
写入文件的几个方法:
read()(会自动记录上一次读取的位置)
read() 

          从此输入流中读取一个数据字节。 
read(byte[] b) 

          从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。 
read(byte[] b, int off, int len) 

          从此输入流中将最多 len 个字节的数据读入一个 byte 数组中。 
skip(long n) 

          从输入流中跳过并丢弃 n 个字节的数据。 

FileoutputStream  

FileoutputStream用于向文件写入字节流
构造方法具体查询API(特殊构造方法如下):
特殊构造器:public FileOutputStream(File file, boolean append)如果第二个参数为 true,则将字节写入文件末尾处,而不是写入文件开始处。创建一个新 FileDescriptor 对象来表示此文件连接
写入文件的几个方法:
write(byte[] b) 

          将 b.length 个字节从指定 byte 数组写入此文件输出流中。 

  write(byte[] b, int off, int len) 

          将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此文件输出流。 
write(int b) 

          将指定字节写入此文件输出流。 

//字符流

FileReader

FileReader 用于读取File实例
具体构造方法
FileReader(File file) 
在给定从中读取数据的 File 的情况下创建一个新 FileReader。 
FileReader(FileDescriptor fd) 

        在给定从中读取数据的 FileDescriptor 的情况下创建一个新 FileReader。 
FileReader(String fileName) 
在给定从中读取数据的文件名的情况下创建一个新 FileReader。 

FileWriter

FileWriter(File file) 
根据给定的 File 对象构造一个 FileWriter 对象。 
FileWriter(File file, boolean append) 
根据给定的 File 对象构造一个 FileWriter 对象。 
FileWriter(FileDescriptor fd) 
构造与某个文件描述符相关联的 FileWriter 对象。 
FileWriter(String fileName) 
根据给定的文件名构造一个 FileWriter 对象。 
FileWriter(String fileName, boolean append) 
根据给定的文件名以及指示是否附加写入数据的 boolean 值来构造 FileWriter 对象。 

//字节缓冲流 

BufferedInputStream

BufferedInputStream 为另一个输入流添加一些功能,即缓冲输入以及支持 mark 和 reset 方法的能力。
在创建 BufferedInputStream 时,会创建一个内部缓冲区数组。在读取或跳过流中的字节时,可根据需要从包含的输入流再次填充该内部缓冲区,一次填充多个字节。
mark 操作记录输入流中的某个点,reset 操作使得在从包含的输入流中获取新字节之前,再次读取自最后一次 mark 操作后读取的所有字节。 
具体构造方法
BufferedInputStream(InputStream in) 

          创建一个 BufferedInputStream 并保存其参数,即
4000
输入流 in,以便将来使用。 
BufferedInputStream(InputStream in, int size) 

          创建具有指定缓冲区大小的 BufferedInputStream 并保存其参数,即输入流 in,以便将来使用。 

  具体方法 

  available() 

        返回可以从此输入流读取(或跳过)、且不受此输入流接下来的方法调用阻塞的估计字节数。 

  close() 

        关闭此输入流并释放与该流关联的所有系统资源。 

  mark(int readlimit) 

        参见 InputStream 的 mark 方法的常规协定。 

  markSupported() 

          测试此输入流是否支持 mark 和 reset 方法。 

  read() 

        参见 InputStream 的 read 方法的常规协定。 

  read(byte[] b, int off, int len) 

      从此字节输入流中给定偏移量处开始将各字节读取到指定的 byte 数组中。 

  reset() 

          参见 InputStream 的 reset 方法的常规协定。 

  skip(long n) 

        参见 InputStream 的 skip 方法的常规协定。 

BufferedOutputStream
实现缓冲的输出流。通过设置这种输出流,应用程序就可以将各个字节写入底层输出流中,而不必针对每次字节写入调用底层系统。
具体构造方法
BufferedOutputStream(OutputStream out) 
创建一个新的缓冲输出流,以将数据写入指定的底层输出流。 
BufferedOutputStream(OutputStream out, int size) 
创建一个新的缓冲输出流,以将具有指定缓冲区大小的数据写入指定的底层输出流。 

  方法
flush() 
刷新此缓冲的输出流。 
write(byte[] b, int off, int len) 
将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此缓冲的输出流。 
write(int b) 
将指定的字节写入此缓冲的输出流。 

字节流通向字符流的桥梁

InputStreamReader
为了达到最高效率,可要考虑在 BufferedReader 内包装 InputStreamReader。例如: BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
具体构造方法
InputStreamReader(InputStream in) 

        创建一个使用默认字符集的 InputStreamReader。 
InputStreamReader(InputStream in, Charset cs) 

          创建使用给定字符集的 InputStreamReader。 
InputStreamReader(InputStream in, CharsetDecoder dec) 

          创建使用给定字符集解码器的 InputStreamReader。 
InputStreamReader(InputStream in, String charsetName) 

          创建使用指定字符集的 InputStreamReader。 

  具体方法
close() 

        关闭该流并释放与之关联的所有资源。 
getEncoding() 

          返回此流使用的字符编码的名称。 
read() 

          读取单个字符。 
read(char[] cbuf, int offset, int length) 

          将字符读入数组中的某一部分。 
ready() 

          判断此流是否已经准备好用于读取。 

OutputStreamWriter(注意其构造方法的使用)
可使用指定的 charset 将要写入流中的字符编码成字节。它使用的字符集可以由名称指定或显式给定,否则将接受平台默认的字符集。
具体构造方法 
OutputStreamWriter(OutputStream out) 

          创建使用默认字符编码的 OutputStreamWriter。 
OutputStreamWriter(OutputStream out, Charset cs) 

          创建使用给定字符集的 OutputStreamWriter。 
OutputStreamWriter(OutputStream out, CharsetEncoder enc) 

          创建使用给定字符集编码器的 OutputStreamWriter。 
OutputStreamWriter(OutputStream out, String charsetName) 

          创建使用指定字符集的 OutputStreamWriter。 

  具体方法

  close() 

          关闭此流,但要先刷新它。 

  flush() 

          刷新该流的缓冲。 

  getEncoding() 

        返回此流使用的字符编码的名称。 

  write(char[] cbuf, int off, int len) 

      写入字符数组的某一部分。 
write(int c) 

          写入单个字符。 

  write(String str, int off, int len) 

      写入字符串的某一部分。 

//字符缓冲流 
BufferedReader 传参:(FileReader)
从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了
具体构造方法
BufferedReader(Reader in) 

          创建一个使用默认大小输入缓冲区的缓冲字符输入流。 
BufferedReader(Reader in, int sz) 

          创建一个使用指定大小输入缓冲区的缓冲字符输入流。 

  具体方法 

  close() 

        关闭该流并释放与之关联的所有资源。 

  mark(int readAheadLimit) 

      标记流中的当前位置。 

  markSupported() 

          判断此流是否支持 mark() 操作(它一定支持)。 
read() 

      读取单个字符。 

  read(char[] cbuf, int off, int len) 

      将字符读入数组的某一部分。 

  String readLine() 

          读取一个文本行。 
boolean ready() 

        判断此流是否已准备好被读取。 

  reset() 

        将流重置到最新的标记。 

  skip(long n) 

    跳过字符。 

BufferedWriter
具体构造方法
BufferedWriter(Writer out) 

          创建一个使用默认大小输出缓冲区的缓冲字符输出流。 
BufferedWriter(Writer out, int sz) 

        创建一个使用给定大小输出缓冲区的新缓冲字符输出流。 

  具体方法 

  close() 

      关闭此流,但要先刷新它。 
flush() 

        刷新该流的缓冲。 

  newLine() 

        写入一个行分隔符。 
write(char[] cbuf, int off, int len) 

        写入字符数组的某一部分。 

  write(int c) 

      写入单个字符。 

  write(String s, int off, int len) 

             写入字符串的某一部分。 

//
数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型。
//管道流
DataInputStream
DataOutputStream
特点:可以读出或者写入对相应的数据类型的数据,但需要注意的是,读出的顺序需要与写入的顺序一致。
ObjectInputStream
ObjectInputStream
特点:可以读出或者写入一个象,也可以读取数据类型。
(拓展: / ../ ./ )依次对应 工作空间(workpace)同级目录     工程(myproject)同级目录即(workpace)下级目录     同工程目录下级即(myproject)下级目录
流的上下关系:参考:http://www.cnblogs.com/oubo/archive/2012/01/06/2394638.html 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐