java基础——IO

IO

1.1 IO流

    IO流指的是输入输出流,输入输出是相对于处理器来说的;
    一般流入处理器的数据流是输入流; 键盘、触摸屏、麦克风 文件
    一般从处理器流出的数据流是输出流;显示屏、音响 文件

1.2 File对象

    File工具类是java处理文件对象的类;包含了文件一些常用的处理方法,需要掌握;
    文件包括两种:一种是目录 Directory;一种是文件流对象,也就是文本文件 file;
    文件的创建;相关属性的读取;文件的递归调用;

    文件路径分隔符:
        对于 UNIX 平台,绝对路径名的前缀始终是 "/"。相对路径名没有前缀。
            表示根目录的绝对路径名的前缀为 "/" 且名称序列为空。l
            路径中使用 "/" 作为分隔符; 
        对于 Microsoft Windows 平台,包含盘符的路径名前缀由驱动器号和一个 ":" 组成。
            如果路径名是绝对路径名,还可能后跟 "\\"。需要进行转义处理;
            UNC 路径名的前缀是 "\\\\";主机名和共享名是名称序列中的前两个名称。
            没有指定驱动器的相对路径名没有前缀。 

    相对路径和绝对路径:
        绝对路径名是完整的路径名,不需要任何其他信息就可以定位它所表示的文件。
            Linux和Unix绝对路径是从 / 开始的;
            windows的绝对路径是从 盘符开始的,例如: c:// 从c盘开始的绝对路径;

        相对路径名必须使用取自其他路径名的信息进行解释。 
            ./ 表示当前目录;../表示当前目录的上级目录;    

1.3 IO流工具类

    IO流的分类:
        根据流向: 输入流、输出流;
        根据处理的处理的数据单元的类型:字节流、字符流
            字节流:以字节为单位进行处理,是二进制字节流,不支持中文编码,会产生中文乱码;
                    以Stream结尾的类,一般都是处理字节流的类;
                    InputStream和OutputStream是所有字节流的顶层类;

            字符流:以字符为单位进行处理,是字符流,支持中文编码,不会产生中文乱码;
                    以er结尾的类,一般是处理字符流的类;
                    Reader和Writer是所有字符流的顶层类;

        除了以上的分类之外,还有一种类型流,是将字节流和字符流联系在一起的转换流;
            InputStreamReader 是字节流通向字符流的桥梁;

1.4 对象流【字节流】

    对象流是字节流中的一种,但是对象流和序列化传输相关;
        因为对象流经过了IO的输入输出,如果要保持输入输出前后对象内容的一致性,需要使用序列化;
        对象流处理的对象类需要实现Serializable序列化接口;
    解析:
        对象输入流读取的文件必须是对象输出流输出的文件,否则会发生序列化失败;
        对象输入流读取对象流文件重新创建的对象,在内存中是一个新的对象;和使用对象输出流输出的对象已经不是同一个对象了;
        
        到现在为止,可以在内存中创建一个对象的方法途径有以下:
            使用new 创建;
            使用对象输入流创建;
            使用反射创建;
            使用克隆创建;

    序列化:一组数据按照一定的顺序或者标号记性分割,分别传输之后,还可以按照顺序或者序号进行重新组合的过程,就是序列化的过程;
            一般用于数据传输、网络传输等等,保证数据在传输前后的数据信息的一致性;
            java对于需要进行序列化的类,需要使用 Serializable 接口进行表示,这只是一个标识接口,这个接口中没有任何方法;只是一个标识;
            
    transient:用于修饰成员变量;瞬时态;在序列化中如果类中那个属性不需要进行序列化处理,则可以使用transient关键字进行修饰,
            则该属性会使用该属性类型的默认值进行序列化;保证了一定数据的隐私;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值