黑马程序员_IO流

来源:互联网 发布:赛亚人网络 编辑:程序博客网 时间:2024/05/15 23:44
------- android培训java培训、期待与您交流! ----------

 

六:IO流

  1.1其他对象

    System类:描述系统的一些信息,类中的属性和方法都是静态的。

          getProperties();获取系统属性信息。

          out:标准输出,默认是控制台。

          in:标准输入,默认是键盘。

          setProperty();设置系统信息。

   Runtime:每个应用程序都有一个Runtime类实例,使应用程序能够与其运行的环境相连接。可以通过getRuntime()方法获取当前运行。

   Date:表示特定的瞬间,精确到毫秒。

         Date d=new Date();

         SimpleDateFormat sdf=new SimpleDateFormat(日期格式);

         sdf.format();

   Calendar:抽象类。

         Calendar c=new getInstance();

         c.get(Calendar.YEAR);

         c.add();

         c.set();

   Math类:

         cell方法,返回大于指定数据的最小整数。

         floor方法,返回小于指定数据的最大整数。

         round方法,返回最接近参数的long,即四舍五入。

         pow (int a,int b)方法,返回a的b次幂的结果。

         Random();返回大于等于0.0,小于1.0之间的随机数。

         (int)Random()*10+1:1到10之间的数。

1.2IO流

   IO流用来处理设备之间的数据传输,对数据的操作是通过流的方式,Java用于操作流的对象都在IO流中。

   IO流{按操作数据分为两种:字节流,字符流;

            按流向方式分为两种:输入流,输出流;}

   输入流:Reader,InputStream

   输出流:Writer,OutputStream

1.3字符流

    Reader,Writer

   创建对象:FileWriter fw=new FileWriter(“要写出文件的名称及扩展名”);

                     FileReader fr=new FileReader("将要读入的文件名称及扩展名");

   对象方法:fw.write("abc");

                     fr.read();

                     fw.flush();

                     fw.close();

                     fr.close();

     文件的续写:fw.write("",true);

    文件的读取方式一:   FileReader fr=new FileReader("将要读入的文件名称及扩展名");

                                       while(true)

                                       {

                                               int ch=fr.read();

                                               if(ch==-1)

                                                    break;

                                       }

     文件的读取方式二:FileReader fr=new FileReader("将要读入的文件名称及扩展名");

                                      char【】 ch=new char【1024】;

                                      int num=0;

                                      while((num=fr.read(ch))!=-1){sap(new String(ch,0,num))}

    字符流的缓冲区:

            缓冲区的出现提高了对数据的读写效率。

           对应类有:BufferedWriter,BufferedReader

            但缓冲区要和流结合使用,在流的基础上对流的功能进行了增强。

          BufferedWriter:将文本写入字符输出流,缓冲各个字符,从而提供单个字符,数组和字符串的高校输入。

          BufferedReader:从字符输入流中读取文本,缓冲各个字符,从而实现对字符,数组和行的高校读取。

 1.4装饰设计模式

         当要对已有的对象进行功能增强时,可以定义类,将已有对象出入,基于已有的功能,并提供加强的功能。该方法称为装饰设计模式。

         装饰设计模式比继承要灵活,避免了体系臃肿,而降低了类与类之间的关系。

         LineNumberReader:跟踪行号的缓冲字符输入流。

                 其中的方法:getLineNumber();

                                      setLineNumber();

          注:lineNumberReader是BufferedReader的一个子类。

1.5读取转换流:inputStreamReader

     写入转换流:outputStreamWriter

1.6 file类

     file类是文件和目录路径名的抽象表达形式。

       file f=new file("a.txt");

       用来将文件和文件夹封装成对象,以方便对文件与文件夹进行操作。

       file对象可以作为参数传递给流的构造函数。

 1.7file类的常用方法

     创建 :createNewFile();

                 createTempFile(String prefix,String suffix);

                 createTempFile(String prefix,String suffix,file x);

              创建目录:即文件夹的方法。

                 mkdir();

                 mkdirs();

     删除:boolean delete();

                boolean deleteOnExit();

    判断:boolean canExecute();

               boolean canRead();

               boolean canWrite();

               boolean exists();

               boolean isFile();

               boolean isDirectory();

              boolean isHidden();

              boolean isAbsolute();

     获取:String getName();

               String getPath();

               String getParent();

               String getAbsolutePath();

               int getAbsoluteFile();

               long length();

               long lastModified();

    另外,boolean renameTo();换名,移动

               File【】 listRoots();

               String【】 list();

               String【】 list(FilenameFilter filter);

 

 1.8递归

      递归就是自身调用自己。

     递归注意事项:1.限制条件

                              2.要注意递归的次数,尽量避免内存溢出。

 1.9Properties

     Porperties是Hashtable的子类,即它具备Map集合的特点,而且它里面存储的键值对都是字符串。是集合与io技术相结合的集合容器。