黑马程序员技术交流社区

标题: 【石家庄校区】笔记 [打印本页]

作者: 庞帅    时间: 2018-4-23 14:41
标题: 【石家庄校区】笔记
本帖最后由 小石姐姐 于 2018-4-25 15:39 编辑

09 IO流
第1章 File类1.1 File概述
打开API,搜索File类。阅读其描述:File文件和目录路径名的抽象表示形式。即,Java中把文件或者目录(文件夹)都封装成File对象。也就是说如果我们要去操作硬盘上的文件,或者文件夹只要找到File这个类即可,那么我们就要研究研究File这个类中都有那些功能可以操作文件或者文件夹呢
1.2 File类的构造函数
File(String pathname) :一个字符串路径封装File对象
File(String parent,String child):传入一个父级路径和子级路径
File(File parent,String child):传入一个File类型的父级路径和子级路径

1.3 File创建和删除功能
boolean createNewFile():指定路径不存在该文件时时创建文件,返回true,否则返回false
boolean mkdir():当指定的单级文件夹不存在时创建文件夹并返回true,否则返回false  
boolean mkdirs():当指定的多级文件夹某一级文件夹不存在时,创建多级文件夹返回true,否则返回false
boolean delete():删除文件或者删除单级文件夹
1.4 File类的判断功能
boolean exists():判断指定路径的文件或文件夹是否存在
boolean isAbsolute():判断当前路径是否是绝对路径
boolean isDirectory():判断当前的目录是否存在
boolean isFile():判断当前路径是否是一个文件
boolean isHidden():判断当前路径是否是隐藏文件

1.5 File类的获取功能和修改名字功能
  File getAbsoluteFile():获取文件的绝对路径,返回File对象
  String getAbsolutePath():获取文件的绝对路径,返回路径的字符串
  String getParent():获取当前路径的父级路径,以字符串形式返回该父级路径
  File getParentFile():获取当前路径的父级路径,以File对象形式返回该父级路径
  String getName():获取文件或文件夹的名称
  String getPath():获取File对象中封装的路径
  long lastModified():毫秒返回最后修改时间
  long length():返回文件的字节数
  boolean renameTo(File dest): 将当前File对象所指向的路径 修改为 指定File所指向的路径
1.6 File其它获取功能
String[] list():以字符串数组的形式返回当前路径下所有的文件和文件夹的名称
File[] listFiles():File对象的形式返回当前路径下所有的文件和文件夹的名称
static File[] listRoots():获取计算机中所有的盘符
第2章 字符流与字节流
                           
2.1 概述
IO流分类:
    流向
            输入流        读取数据        FileReader        Reader
             输出流        写出数据        FileWriter        Writer
     数据类型
             字节流        
                       字节输入流   读取数据        InputStream
                      字节输出流   写出数据        OutputStream
                   字符流
                       字符输入流  读取数据        Reader
                    字符输出流  写出数据        Writer

2.2 复制图片
字节流可以操作所有类型的文件,因为所有的文件在计算机中都是以字节形式存储
而字符流只能用来操作纯文本类型的文件,不能操作字节类型的文件

第10天IO流
1. File类:
      File:文件和目录路径名的抽象表示形式;实例是不可变的
      构造方法:
      File(File parent, String child):根据指定的父路径对象和文件路径创建file对象
      File(String pathname):根据指定的路径名转换成file对象
      File(String parent, String child):根据指定的父路径和文件路径创建file对象
  2. File的常用功能:
               创建功能:
             boolean createNewFile():当指定文件不存在时创建文件并返回true,否则返回false //创建文件
             boolean mkdir():当指定文件夹不存在时创建文件夹并返回true,否则返回false //单级目录
             boolean mkdirs():  创建文件夹,当文件夹所在的目录不存在,则顺道一块创建   //多级目录
               删除功能:
             boolean delete():当指定的文件或文件夹存在时删除文件或文件夹并返回true否则返回false
                            注意:删除文件夹,这个文件夹下面不能有文件或文件夹      //删除文件或空目录
               判断功能:
             boolean exists():判断文件或文件夹是否存在,存在返回true,否则返回false  
             boolean isAbsolute():判断file对象指向的路径是否是绝对路径,是返回true,否则返回false
                         boolean isDirectory():判断file对象指向的路径是否是文件夹(目录),是返回true,否则false
                         boolean isFile():判断 file对象指向的路径是否是文件,是返回true,否则返回false
                         boolean isHidden(): 判断file对象指向的路径是否有隐藏属性,是返回true,否则返回false
               获取功能:
            File getAbsoluteFile():返回file对象的返回当前file对象所有指向的绝对路径
                        String getAbsolutePath(): 返回file对象所指向的绝对路径
                        String getParent():获取父路径的字符串  
                        File getParentFile(): 获取父路径的file对象
                        String getName():获取文件和文件夹的名称
                        String getPath(): 返回创建file对象时给的路径
                        long lastModified(): 获取文件上次修改时间
                        long length():获取文件大小,不能获取目录大小,(单位是byte)
              修改名字功能:
                        boolean renameTo(File dest):重命名文件
              重要的获取功能:
                String[] list():返回指定目录中的所有子文件或子目录的名称
                        File[] listFiles():返回指定目录中的所有子文件或子目录的file对象
                        static File[] listRoots():返回所有盘符(根目录)
  3.IO字节流与IO字符流:
     IO流的分类:
                  流向:  输入流     读取数据   FileReader Reader
                              输出流     写出数据   FileWriter Writer
                  数据类型:   字节流     输入流    InputStream
                                                     输出流    OutputStream
                                      字符流     输入流    Reader
                                                     输出流     Writer
                  区别:
                        字节:byte,字数,能够组成任何文件
                        字符:文本,涉及编码问题,字符底层也是字节
                  二进制文件只能使用字节流进行复制(使用Windows自带的记事本打开都不懂的)
                  文本文件的复制既能使用字符流也能使用字节流   
第11天 多线程
          1.概述:
                进程:当前正在运行的程序,一个应用程序在内存中的执行区域
                多线程:是进程中的一个执行控制单元,执行路径
                注意:一个进程可以有单个,也可多个线程
                特点:
                        单线程:安全性高,效率低
                        多线程:安全性低,效率高
                                   并发:并行发生,多线程实现并非
                                   同步:sync-->一个完成再执行一个(单线程)
                                   异步:async-->同时执行多步(多线程)
         2.创建线程:
                方式一:(Thread类)一种方法是将类声明为 Thread 的子类。该子类应重写
                             Thread 类的 run 方法。接下来可以分配并启动该子类的实例
                              String getName() 返回该线程的名称。
                              void setName(String name) 改变线程名称,使之与参数 name 相同。
                              执行顺序不一致
                              原因:CPU执行程序随机性(高速进行切换产生的)
                              主方法是单线程
                方式二:(Runnable接口)创建线程的另一种方法是声明实现 Runnable 接口的类。该类然后实现 run 方法。
                             然后可以分配该类的实例,在创建 Thread 时作为一个参数来传递并启动。
                           Thread(Runnable target)   分配新的 Thread 对象。
                           static Thread currentThread()  返回对当前正在执行的线程对象的引用。
               *通过实现接口的类来实现多线程
                  static void sleep(long millis):让当前线程睡一会
         3. 同步代码块:
                synchronized:同步,可以修饰代码块和方法,被修饰的代码块和方法一旦被线程访问则直接锁住,其他线程无法访问结构                     
                synchronized(锁对象){ }
                                注意:锁对象需要被所有的线程所共享
         4. 同步方法
                 使用关键字synchronized修饰的方法,一旦被一个线程访问,则整个方法全部被锁定,其他线程无法访问
                 非静态同步方法的锁对象是this
                静态同步方法的锁对象是当前类的字节码对象






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2