流操作的基本规律的总结


 
 流的使用我用3个步骤来确定具体使用哪个流
 
 1、明确源和目的
  源:输入流     InputStream  Reader
  目的:输出流   OutputStream Writer
 2、操作的数据是否是纯文本(在明确源和目的的情况下)
  是:字符流 
  不是:字节流
  3、当体系明确后,在明确要使用哪个具体对象。
   通过设备来进行区分:
   源设备:内存、硬盘、键盘
   目的设备:内存、硬盘、控制台
  例子:将一个文本文件中数据存储到另一个文件中。复制文件。
    
   源:因为是源,所以使用读取流。  InputStream  Reader
       是不是操作文本文件:是,这时就可以选择Reader
       这样体系就明确了。
   
      接下来明确要使用该体系中的哪个对象。
      明确设备,硬盘上一个文件
      Reader体系中可以操作文件的对象是 FileReader
       是否需要缓冲区(数据小的就可以不需要):是,加入Reader体系中缓冲区BuffereReader.
       FileReader r = new FileReader("读取数据路径");
      BuffereReader b = new BuffereReader(r);
  
       目的:OutputStream Writer
      是否是纯文本。
      是,Writer.
      设备:硬盘一个文件。
      Writer体系中可以操作文本的对象是FileWriter.
             是否需要缓冲区(数据小的就可以不需要):是,加入Writer体系中缓冲区BuffereWriter.
      FileWriter r = new FileWriter("存放数据路径");
     BuffereWriter b = new BuffereWriter(r);

  用于操作字节数组的流对象
   
  ByteArrayInputStream:在构造的时候,需要接受数据源,而且数据源是一个字节数组
 
  ByteArrayOutputStream:在构造的时候,不用定义数据目的,因为该对象已经内部封装了可变长度的字节数组。、
  这就是数据目的。
  因为这个两个流对象都操作的数组,并没有使用系统资源。
  所以,不用进行close()关闭
 
 在操作规律讲解时:
  源设备:
   键盘 System.in , 硬盘 FileStream , 内存 ArrayStream
  目的设备:
   键盘 System.out , 硬盘 FileStream , 内存 ArrayStream
   
  用流的读写思想操作数据用于操作字节数组的流对象
   
  ByteArrayInputStream:在构造的时候,需要接受数据源,而且数据源是一个字节数组
 
  ByteArrayOutputStream:在构造的时候,不用定义数据目的,因为该对象已经内部封装了可变长度的字节数组。、
  这就是数据目的。
  因为这个两个流对象都操作的数组,并没有使用系统资源。
  所以,不用进行close()关闭
 
 在操作规律讲解时:
 源设备:
   键盘 System.in , 硬盘 FileStream , 内存 ArrayStream
 目的设备:
   键盘 System.out , 硬盘 FileStream , 内存 ArrayStream
   
 用流的读写思想操作数据。

 File类常见的方法
 
  1、创建
          boolean createNewFile():在指定目下创建文件,如果该文件已存在就不创建(返回false),否则就创建(返回true)
          跟输出流创建文件不一样,输出流对象就建立文件,而且已有文件文件,会覆盖。

         举一个简单的例子:

          File file = new File("E:\\myuser\\fileDemo.txt");
          file.createNewFile();


  2、删除
          boolean detele():删除此抽象路径名表示的文件或目录。
          deteleOnExit();在程序退出时删除指定文件

        例如:

        
          File file = new File("E:\\myuser\\fileDemo.txt");
          file.delete();
          file.deleteOnExit();


  3、判断
          boolean exists():判断文件是否存在。存在返回true,否则false
          isFile();//判断此抽象路径名表示的文件存在且 是一个标准文件时,返回 true;否则返回 false
          isDirectory();//判断此抽象路径名表示的文件存在且 是一个目录时,返回 true;否则返回 false 
          isHidden();判断是否是隐藏文件
          isAbsolute();//判断抽象路径名是绝对路径名,则返回 true;否则返回 false

       例如:

           public static void renameTos(){
                     File file = new File("E:\\myuser\\fileDemo.txt");
                     File file1 = new File("E:\\myuser\\myuser\\fileDemos.txt");
                     file1.renameTo(file);
                     print("file = "+file.isFile());
                     print("file1 = "+file1.isDirectory());
                     print("file = "+file.isHidden());
                     print("file1 = "+file1.isAbsolute());
             }


  4、获取信息
          getName():得到文件的名称,该名称是路径名名称序列中的最后一个名称
          getPath():
          getParent():得到抽象路径名指定父目录的路径名字符串(也就是得到上一级目录的名称);
                             如果此路径名没有指定父目录,则返回 null
          length() :得到文件的长度
          lastModified() :得到文件最后一次修改的时间
          getAbsoluteFile() ://得到文件的相对路径

       例如:

         public static void getInforFile(){
                 File file = new File("E:\\myuser\\fileDemo.txt");
                 print("getName = "+file.getName());//文件的名称
                 print("getPath = "+file.getPath());//文件的路径
                 print("getParent = "+file.getParent());//文件父目录的名字
                 print("length = "+file.length());//文件的长度
                 print("lastModified = "+file.lastModified());//文件上次修改的时间
                 print("getAbsoluteFile = "+file.getAbsoluteFile());//文件的绝对路径
          }
 


  5、创建目录:
          mkdir():当已创建目录时,返回 true;否则返回 false 。创建一级目录
          mkdirs():已创建目录以及所有必需的父目录时,返回 true;否则返回 false 。创建多级目录

        例如:

          
            File f1 = new File("E:\\myuser\\FileDemo_FileDemo11.txt");
            File f2 = new File("E:\\myuser\\myuser\\myuser\\FileDemo_FileDemo_.txt");
            f1.mkdir();
            f2.mkdirs();
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值