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

----------- 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学习型技术博客、期待与您交流!------------     

   

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值