• Java day 15


    1、File:文件和目录路径名的抽象表示形式,File类的实例是不可变的

     File的构造方法:
       (1)File(File parent,String child):根据指定的父路径对象和文件路径创建File对象
       (2)File(String pathname):将指定的路径名转换成一个File对象
       (3)File(String parent,String child):根据指定的父路径和文件路径创建File对象
     File的创建功能:
      (1)boolean createNewFile():当指定文件不存在时创建文件并返回true,否则返回false
      (2)boolean mkdir():当指定文件夹不存在时创建文件夹并返回true,否则返回false
      (3)boolean mkdirs():创建指定文件夹,当文件夹所在的目录不存在,则顺道一块创建了
     File的删除功能:
        boolean delete():删除指定的文件或者文件夹,当指定的文件或者文件夹存在时删除文件并返回true,否则返回false
     File的判断功能:
     (1)boolean exists():判断文件或者文件夹是否存在,如果存在就返回true,否则返回false
     (2)boolean isAbsolute():判断File对象指向的路径是否是绝对路径,如果是绝对路径则返回true,否则返回false
     (3)boolean isDirectory():判断File对象指向的路径是否是文件夹,如果是文件夹则返回true,否则返回false
     (4)boolean isFile():判断File对象指向的路径是否是文件,如果是文件则返回true,否则返回false
     (5)boolean isHidden():判断File对象指定的路径是否有隐藏属性,如果隐藏了则返回true,否则返回false
     File的其他功能:
     (1)File getAbsoluteFile():以File对象的形式返回当前File对象所有指向的绝对路径
     (2)String getAbsolutePath():返回File对象所指向的绝对路径
     (3)String getParent():获取父路径返回字符串
     (4)File getParentFile():获取父路径返回File对象
     (5)String getName():获取文件或文件夹的名称
     (6)String getPath():返回创建File对象时给的路径
     (7)long lastModifiled():以毫秒值的形式返回最后修改的时间
     (8)long length():返回文件的字节数
     (9)boolean renameTo(File dest)://将当前File对象所指向的路径修改为指定File所指向的路径
     (10)String[] list():返回当前路径下的所有文件和文件夹名称
     (11)File[] listFiles():返回当前路径下的所有文件和文件夹名称已经绝对路径
     (12)static File[] listRobots():返回的是所有盘符
     注意:
        a、只有指向文件夹的File对象才可以调用该方法
        b、删除一个文件夹,这个文件夹下面不能有其他的文件和文件夹
        c、绝对路径:固定不可改变的路径,以盘符开头
        d、相对某个参照物,不能以盘符开头,在Eclipse中相对路径相对应当前项目的根目录
    

    2、IO流分类:

      (1)流向:
          A、输入流:读取数据    FileReader   Reader
          B、输出流:写出数据    FileWriter     Writer
      (2)数据类型:
          A、字节流:
           a、字节输入流:读取数据  InputStream
           b、字节输出流:写出数据  OutputStream
          B、字符流:
           a、字符输入流:读取数据  Reader
           b、字符输出流:写出数据  Writer
     注意:
           a、字节把数据直接写到文件中,不需要刷新
           b、二进制文件只能使用字节流进行复制(使用windows自带记事本打开是读不懂的)
           c、文本文件的复制既可以使用字符流,也可以使用字节流
    

    3、标准字节输入输出流:

      (1)public static final InputStream in:字节输入流,用来读取键盘录入的数据
      (2)public static final PrintStream out:字节输出流,将数据输出到命令行
      注意:
        标准输出流是一个字节输出流,只能输出字节或者字节数组,,但读取到的数据是字符串,如果想进行输出则需要转换成字节数组,通过标准输出流输出字符串,把标准输出流转换成一种字符输出即可:OutputStreamWriter
     转换流:把字节输入流转换成字符输入流:InputStreamReader
    

    4、打印流:

      (1)PrintStream:在OutputStream基础之上提供了增强功能,可以方便地输出各种类型的数据而不仅限于byte型,不抛出IOException
      (2)PrintWriter:提供了PrintStream的所有打印方法,不抛出IOException
      两者区别:作为处理流使用时,PrintStream只能封装OutputStream类型的字节流,而PrintWriter既可以封装OutputStream类型的字节流,也可以封装Writer类型的字符输出流并增强其功能。
       a、可以自动换行:println()
       b、不能输出字节,但可以输出其他任意类型
       c、通过某些配置,可以实现自动刷新(只有在调用println,printf或format才有用)
       d、也是包装流,不具备写出功能
       e、可以把字节输出流转换成字符输出流
    注意:只能输出不能输入
     (3)打印流的特有功能:
         A、自动换行:使用方法println()
         B、自动刷新:创建PrintWriter对象时启动自动刷新开关,并且使用Println等3 个方法
     注意:创建FileWriter对象时boolean参数是否自加,创建打印流对象的boolean类型参数是否自动刷新
    

    5、对象操作流:可以用于读写任意类型的对象

     (1)ObjectOutputStream
                    writeObject
                 ObjectOutputStream(OutputStream out)
     (2)ObjectInputStream
                   readObject
                  ObjectInputStream(InputStream in)
      注意:
        a、使用对象输出流写出对象,只能使用对象输入流来读取对象,只能将支持java.io.Serializable接口的对象写入流中 
        b、Exception in thread "main" java.io.EOFException:当输入过程中意外到达文件或流的末尾时,抛出此异常
        c、Serializable:序列号,是一个标识接口,只起标识作用,没有方法,当一个类的对象需要IO流进行读写的时候,这个类必须实现该接口
       解决对实现序列化接口出现的黄色警告问题:Exception in thread "main" java.io.InvalidClassException
       当Serialization运行时检测到某个类具有以下问题之一时,抛出此异常:
          a、该类的序列版本号与从流中读取的类描述符的版本号不匹配
          b、该类包含未知数据类型
          c、该类没有可访问的无参数构造方法
    

    6、Properties:表示了一个持久的属性集,属性列表中每个键及其对应值都是一个字符串

       构造方法:Properties()
    

    7、编码表:把计算机底层的二进制数据转换成我们能看到的字符

     (1)ASCII;(2)GB2312---GBK;(3)Unicode(所有的字符都占两个字节);(4)UTF-8:长度可变的码表;(5)ANSI:本地编码表---gbk
     注意:字符流=字节流+编码
    

    8、多线程:一个进程可以有一个线程,也可以有多个线程

        进程:当前正在运行的程序,一个应用程序在内存中的执行区域
        线程:进程中的一个执行控制单元,执行路径
          a、单线程:安全性高,效率低
          b、多线程:安全性低,效率高(360,迅雷等)
       注意:主方法可以创建多个线程
    

    9、网络地址三要素:

     (1)IP地址:网络中设备的标识,可用主机名
     (2)端口号:
          a、物理端口:网卡口
          b、逻辑端口:每个网路程序都会至少有一个,用于标识进程的逻辑地址,不同的进程(有效端口号:0-65535,其中0-1024系统使用或保留端口)
     (3)传输协议:
         a、UDP:将数据源和目的封装成数据包中,不需要建立连接,不可靠,速度快(数据报的大小限制在64k)
         b、TCP:建立连接,形成传输数据的通道,进行大数据量传输,通过三次握手完成连接,可靠,效率稍低
         UDP协议收发数据的注意事项:
          端口号错误,数据可以正常发出,不会出现异常,但是收不到数据
          Exception in thread "main" java.net.BindException:Address already in use:Cannot bind该异常表示该端口号已经绑定了
          Socket的常用功能:
          (1)InetAddresss getAddress():获取发送端的ip对象
          (2)byte[] getData():获取接收到的数据,也可以直接使用创建对象时的数据
          (3)int getLength():获取具体收到数据的长度
          (4)DatagramPacket:此类表示数据打包 数据byte[] 设备的地址 ip 远程的地址 端口号 DatagramPacket(byte[] buf,int length,InetAddress address,int port)
  • 相关阅读:
    Java技术路线--2循环
    Java技术路线--1基本类型与包装类
    Linux内存管理之UMA模型和NUMA模型
    最长XX子串/数组/子序列
    epoll LT 模式和 ET 模式详解
    OS篇:OS中进程的阻塞与挂起的区别
    约瑟夫环问题
    最大公约数和最小公倍数
    C++之寻找素数(素数筛)
    Linux OOM机制分析
  • 原文地址:https://www.cnblogs.com/cqxljj/p/10348340.html
Copyright © 2020-2023  润新知