java基础之字节流(IO流)

来源:互联网 发布:final修饰数组 编辑:程序博客网 时间:2024/05/16 14:39

一)

IO流(输入流、输出流)

字节流、字符流

1、InputStream



      

2、OutputStream


二)

EOF=End  读到-1就读到结尾


三)

输入流基本方法

int b = in.read(); 读取一个字节无符号填充到int低八位.-1是EOF

in.read(byte[] buf)

in.read(byte[] buf, int start, int size)



四) 输出流基本方法

out.write(int b) 写出一个byte到流,b的低8位

out.write(byte[] buf)将buf字节数组都写入到流

out.wirte(byte[] buf,int start, int size)


五) FileInputStream   文件输入流   -->具体实现了在文件上读取数据

   FileInputStream 从文件系统中的某个文件中获得输入字节。

   FileInputStream 用于读取诸如图像数据之类的原始字节流。要读取字符流,


     FileInputStream(File file)

   FileInputStream(String name)

   

   /*单字节读取  */

   public int read()         throws IOException
从此输入流中读取一个数据字节。如果没有输入可用,则此方法将阻塞。

  

    public void close()           throws IOException
关闭此文件输入流并释放与此流有关的所有系统资源。

如果此流有一个与之关联的通道,则关闭该通道。


/*批量读取   */

public int read(byte[] b,                int off,                int len)         throws IOException
从此输入流中将最多 len 个字节的数据读入一个 byte 数组中。如果 len 不为 0,则在输入可用之前,该方法将阻塞;否则,不读取任何字节并返回0。 


六)FileOutputStream  文件输出流  -->实现了向文件写出byte数据的方法

      文件输出流是用于将数据写入 FileFileDescriptor 的输出流

    

      

    public FileOutputStream(String name)                 throws FileNotFoundException
创建一个向具有指定名称的文件中写入数据的输出文件流。创建一个新 FileDescriptor 对象来表示此文件连接。


 

       

      public FileOutputStream(String name,                        boolean append)                 throws FileNotFoundException
创建一个向具有指定 name 的文件中写入数据的输出文件流。如果第二个参数为 true,则将字节写入文件末尾处,而不是写入文件开始处。创建一个新FileDescriptor 对象来表示此文件连接。

  

      public void write(byte[] b)           throws IOException
b.length 个字节从指定 byte 数组写入此文件输出流中。 



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


close()
          关闭此文件输出流并释放与此流有关的所有系统资源。


七) DataInputStream / DataOutputStream  数据输入输出流

   对“流”功能的扩展,可以更加方便的读取int,long,字符等类型数据

  

   DataOutputStream

       writeInt(int v)、writeDouble(double v)、writeUTF(String str)

  DataOutputStream(OutputStream out)
          创建一个新的数据输出流,将数据写入指定基础输出流。



DataInputStream

DataInputStream(InputStream in)


readDouble()

readUTF()



八)字节缓冲流 BufferedInputStream /  BufferedOutputStream

这两个流类中位IO提供了带缓冲区的操作,一般打开文件进行读写操作时,都加上缓冲,提高IO性能


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


BufferedOutputStream(OutputStream out, int size)
          创建一个新的缓冲输出流,以将具有指定缓冲区大小的数据写入指定的底层输出流。

        










0 0