java--IO

【字节流】:

  通过字节来访问和读写数据,它是以字节为单位。

  

  【继承关系】:

   InputStream----FileInputStream

   OutputStream----FileOutputStream

【FileInputStream】

  其中的方法:

  

   int available()   取得所读取数据所占的字节数

  int  read()   读取文件中的一个字符;

  int read(char[] buf) 从流中读取数据保存至buf[]中,并返回所读取的字节的总数。   

FileInputStream file1 = new FileInputStream("C:\java\a.txt");

char []buf = new char[file1.available()];

file1.read(buf);//将读取的数据保存至数组buf中。

System.out.println(buf);//输出读取的数据

file1.close();

【FileOutputStream】

  

  它的write()方法:

void write(char[] cbuf)
          写入字符数组。
abstract  void write(char[] cbuf, int off, int len)           写入字符数组的某一部分。
 void write(int c)
          写入单个字符。
 void write(String str)
          写入字符串。
 void write(String str, int off, int len)           写入字符串的某一部分。

【字符流】:

  Reader -----BufferedReader

             ------InputStreamReader---FileReader

  Writer -----BufferedWriter

     ------OutputStreamReader---FileWriter

[BufferedReader & FilerReader] 使用方法差不多,但是,BufferedReader要比使用FileReader使用效率更高,可以调用的方法也差不多,但是他要多一个newLine()方法,用来输出一个回车符号(换行)

【在不同的系统中的换行符号是不一样的,在Xp系统中,使用 ,但是JVM中要使用 来换行】

 【FileReader】

  用来读取文字文件,在使用时必须先调用FileReader的构造函数,来创建FileReader的对象,再利用read()来读取文件。

  int  read()   读取文件中的一个字符;

  int read(char[] buf) 从流中读取数据保存至buf[]中,并返回所读取的字节的总数。   

【FileWriter】

  

 void write(char[] cbuf)
          写入字符数组。
abstract  void write(char[] cbuf, int off, int len)           写入字符数组的某一部分。
 void write(int c)
          写入单个字符。
 void write(String str)
          写入字符串。
 void write(String str, int off, int len)           写入字符串的某一部分。

BfferedReader 用来读取缓冲区的字符

BufferedReader(Reader in)  创建缓冲区字符读取流。

BufferedReader(Reader in ,int size);

提供的一个特殊的方法是:可以读取整行数据。

     String readLine();   读取一整行字符。

在使用BufferedReader()之前必须要先创建一个FilerReader 对象,再以它为参数来创建BufferedReader的对象,这样就可以使用这个对象来。

FilerReader fr = new FileReader("C:\........");

BufferedReader br = new BufferedReader(fr);

while((string =bf.readLine() )!=null )

          System.out.println(string);

【【字节流是不能处理中文的,但是字符流可以的】】

【提高IO效率】

  加快字节流用户可以使用缓冲数据流进行处理,前面几种文件处理的方法效率太低了。

BufferedInputStream  和 BufferedOutputStream

原文地址:https://www.cnblogs.com/plxx/p/3400538.html