按方向
    输入/输出流
按单位分
     字节流  字符流
按功能分
    节点流   处理流

FileInputStream  输入流  字节流   节点流

File类

创建文件
   createNewFile
   mkdir()
   mkdirs()
 
 相对路径   相对于指定位置来说的    没有盘符
 绝对路径    明确到指定盘符


read() 读取一个字节  并且把指针向下移动一位
read(byte[]) 读取数据的时候 把数据读取到byte数组中
read(byte[],offset,len)


list()                           返回结果指定文件下一层级所有的文件和文件夹的名字
list(filenamefilter)    返回结果指定文件下一层级经过过滤以后的所有的文件和文件夹的名字
listfiles()                            返回结果指定文件下一层级所有的文件和文件夹的file对象形式
listfiles(filenamefilter)返回结果指定文件下一层级经过过滤以后的所有的文件和文件夹的file对象表现形式


字节流
    输入流:InputStream        字节输入流的超类   抽象类
    输出流:OutputStream          字节输出流的超类     抽象类
字符流
    输入流:Reader             字符输入流的超类
    输出流:Writer             字符输出流的超类
    
文件流
    FileInputStream          字节流  输入流  节点流   直接可以操作文件的
        read()
        read(byte[]) 最常用
        read)(byte[],offset,len)
    FileOutputStream      字节里   输出流   节点流
        write(int)
        write(byte[])
        write(byte[[],off,len)最常用
    FileReader              字符流    输入流    节点流
        read(char[])
    FileWriter              字符流    输出流  节点流
        write(char[],offset,len)


    // 读取和写入的格式    
    while((num=fis.read(数组对象))!=-1){
            fos.write(数组对象,0,num);
    }

 复制文件的流程:
    1 创建流对象
    2 读取文件内容(循环读取)
    3 写入目标文件(flush())
    4 关闭流

缓冲流
    BufferedInputStream            字节流    输入流    处理流
    BufferedOutputStream        字节流    输出流    处理流
    BufferedReader                字符流    输入流
    BufferedWriter                字符流      输出流

    直接操作的流的

    readLine() 读取一行   返回值 String    循环读取时判断  返回值 !=null
    newLine()  换行
    \r\n也能实现文件内容的换行        


转换流
    
    字节转字符 继承自 Reader
        InputStreamReader            字符流       输入流     处理流
    字符转字节  继承自 Writer
        OutputStreamWriter            字符流        输出流      处理流
    编码格式  一定要统一

    乱码的原因;
        1 编码格式不统一
        2 字节的缺失
        
    1 对象流:
            ObjectInputStream
                Object    readObject();
                将文件中对象读取出来  
            ObjectOutputStream
                writeObject(Object obj)
                将对象写入到文件中
           用流去村对象取对象前提是 类实现了 Serializable


           序列化和反序列化:
             如果想将对象持久化存储
             需要对象转化成字节,这个过程叫做序列化
             将字节转成成对象,这个过程叫做反序列化

            序列化id 不写不报错,只会报警告
            建议写上   可以帮助去区分版本

        
            transient修饰不想序列化的属性 , 都存储的是默认值
    
    2 标准输入流
        System.in 会阻塞程序的运行等待用户的输入
      标准输入流
        System.out  会将内容打印到控制台上
      标准错误流
        System.err  会将内容打印到控制台上,颜色是红色的

    3 打印流
        PrintStream  字节打印流
            可以new  也可以通过System.out得到
            print
            println
            write
            append
        PrintWriter     字符打印流
    

    4 内存流
        ByteArrayInputStream
        ByteArrayOutputStream
        使用时,是以内存作为参考
        1> ByteArrayInputStream(byte[] b) b是内存中数据的byte数组的展示形式
        2> toByteArray()  返回值是byte[]  内存输出流调用的 返回值byte中存储的是内存流中的数据
        3> baos.toString();    将内存流中的数据转化成字符串
        4>writeTo(OutputStream)  将内存流中的数据直接写入参数流中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wudinaniya

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值