黑马程序员——39,IO(字节流)

来源:互联网 发布:太极软件 政务 编辑:程序博客网 时间:2024/05/17 06:11

----------- android培训java培训、java学习型技术博客、期待与您交流!------------     

黑马程序员——39,IO(字节流)

一:FileInputStream和FileOutputStream----》

        字节流也分为读取字节流和写入字节流,分别对应着两个基类InputStream(读操作)和OutputStream(写操作)。字节流不需要刷新,直接读取数据和写入数据的。

这里先介绍常见的FileInputStream和FileOutputStream,两者和FileReader和FileWriter的用法是差不多的,也可以配合数组进行传送。

为了简明介绍,直接用复制图片的例子说明。

1,用读取流与源文件关联

2,用写入流与目的地关联

3,定义相关的字节数组(一般是byte数组)

4,调用read方法配合数组读取数据(read方法返回的是在字节数组里存放的读取数据的有效位数),用write方法配合数组写入数据

5,关闭资源

/*复制图片:把f盘的8.27.png复制到d盘8.27_31号复制.png*/import   java.io.*;class   Fuzhi{         public  static   void   main(String[] args) throws  Exception//不要忘记抛出异常         {                   //用读取流与源文件关联                   FileInputStream      fis=new  FileInputStream("f:\\8.27.png");                   //用写入流与目的地关联                   FileOutputStream     fos=new  FileOutputStream("d:\\8.27_31号复制.png");                   //定义字节数组                   byte[]    by=new byte[1024];                   int  i=0;                   while((i=fis.read(by))!=-1)//复制数据                   {                         fos.write(by,0,i);                         }                   //关闭资源                   fis.close();                   fos.close();         }         public static  void   sop(Object obj)//打印方法         {              System.out.println(obj);                      }}


二:BufferedInputStream和BufferedOutputStream----》

        字节流也有自己的缓冲区技术:BufferedInputStream和BufferedOutputStream,依旧以复制图片的例子说明。

1,用读取流与源文件关联

2,用写入流与目的地关联

3,定义缓冲区,相关联流对象

4,直接调用read读取数据,不需要定义字节数组

5,直接write写入数据

 

/*复制图片:把f盘的8.27.png复制到d盘8.27_31号复制.png*/import   java.io.*;class   Fuzhi{         public  static   void   main(String[] args) throws  Exception//不要忘记抛出异常         {                   //用读取流与源文件关联                   FileInputStream      fis=new  FileInputStream("f:\\8.27.png");                   //用写入流与目的地关联                   FileOutputStream     fos=new  FileOutputStream("d:\\8.27_31号复制.png");                   //定义缓冲区,相关联流对象                   BufferedInputStream     buips=new  BufferedInputStream(fis);                   BufferedOutputStream    buops=new  BufferedOutputStream(fos);                      int  i=0;                   while((i=buips.read())!=-1)//复制数据                   {                         buops.write(i);//这里就不需要再定义字节数组来读取了,read方法使用更加方便                         }                   //关闭资源                   buips.close();                   buops.close();         }         public static  void   sop(Object obj)//打印方法         {              System.out.println(obj);                      }} 

----------- android培训java培训、java学习型技术博客、期待与您交流!------------     

   

       

0 0
原创粉丝点击