IO流(二)

来源:互联网 发布:电脑版阅读软件 编辑:程序博客网 时间:2024/06/06 10:03

文件的字节输入流:

         FileInputStream(String name);

字节输出流

         FileOutputStream();

读数据的两种方式:

         1)public int read(); 一次读取一个字节.

         2)public int read(byte [] b); 一次读取一个字节数组.

 

字节缓冲流:更高效的一种流

         字节缓冲输入流:BufferedInputStream

         构造方法: public BufferedInputStream(InputStream in)
         指定默认缓冲区大小创建字节缓冲输入流对象
    字节缓冲输出流:BufferedOutputStream
         构造方法: public BufferedOutputStream(OutputStream out)
         默认缓冲区大小创建字节缓冲输出流对象.
     注意: 缓冲流只是提供一个缓冲区,针对IO进行实现数据的传输实际是通过底层基本流进行实现的,所以缓冲流不能直接对文件操作
 
     flush()和close()方法的区别?
         flush():刷新缓冲区的流,强迫将缓冲字节都写到该流中,刷新之后是可以写数据的.
         close():关闭流对象所指向指向的这个资源文件,一旦关闭,就写不进去数据了.
 
字符输入流: 字节输入流+编码格式(默认GBK)
         public InputStreamReader(InputStream in,charset sc) ;
字符输出流:Writer:是一个抽象类
         使用的是该抽象类的子类:OutputStreamWriter------>字符转换流:可以将字节输出流转换字符流
         public OutputStreamWriter(OutputStream out,Charset cs):创建一字符输出转换流对象,指定编码格式
         字节输出流+编码格式---->字符输出流
         编码格式:使用平台的默认编辑集进行编码:GBK
         public OutputStreamWriter(OutputStream out) ;
字符输入流读数据的方式:
         public int read():一次读取一个字符
         public int read(char[] chs):一次读取一个字符数组
关于字符输出流写数据的方法:
         public void write(int c):写单个字符
         public void write(char[] cbuf):写一个字符数组
         public abstract void write(char[] cbuf,int off,int len):写入字符数组的一部分
         public void write(String str):写字符串
         public void write(String str, int off,int len):写字符串的一部分
         
使用字符转换流进行操作数据的时候:字节流+编码格式
并且在书写代码名称非常长,Java提供了以中更简单的类:便捷类:
         字符转换输入流:InputStreamReader----->FileReader                                                         FileReder(String fileName) 
         字符转换输出流:OutputStreamWriter---->FileWriter
 
字符缓冲输入流
         BufferedReader
         BufferedReader(Reader in) :创建默认缓冲大小
 
字符流为了提高读写速度,Java就提供了一个字符缓冲流的类:
         BufferedReader:字符缓冲输入流
         BufferedWriter:字符缓冲输出流
               将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。 
               可以指定缓冲区的大小,或者接受默认的大小
 
         构造方式:
               public BufferedWriter(Writer out):创建默认缓冲区大小的一个字符缓冲输出流
                                                                                                                    FileWriter(String fileName)
关于字符缓冲输入流的特有功能:
  BufferedWriter:
               public void newLine():写入一个换行符号
  BufferReader:
               public String readLine():一次读取一行
        
 

 


原创粉丝点击