为了账号安全,请及时绑定邮箱和手机立即绑定

文件传输基础——Java IO流

难度入门
时长 2小时 0分
学习人数
综合评分9.67
669人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • 字符流操作
    1)编码问题
    2)认识文本和文本文件
    java的文本(char)是16位无符号整数,是字符的unicode编码(双字节编码)
    文件是byte byte byte......的数据序列
    文本文件是文本(char)序列按照某种编码(utf-8,utf-16be,gbk)序列化为byte的结果
    3)字符流(Reader,Writer)---->操作的是文本文件
    字符的处理,一次处理一个字符
    字符的底层仍然是基本的字节序列
    字符流的基本实现
        InputStreamReader  完成byte流解析为char流,按照编码解析  可以自定义编码格式
        OutputStreamWriter    提供char流到byte流,按照编码处理
    FileWriter    FileReader    
    FileWriter fw = new FileWriter("d:/java/javaIO/copy1.txt",true); //有true的时候追加操作   且无法定义编码类型,在不是gbk编码下会出现乱码
    字符流的过滤器
        BufferedReader -->readLine一次读一行
        BufferedWriter/PrintWriter --->写一行
    通常用 BufferedReader 和 PrintWriter 组合使用来完成字节流的过滤
    BufferedReader br = new BufferedReader( //下面的整个构造(2行)可以用new FileReader("d:/java/javaIO/copy1.txt");
        new InputStreamReader( //InputStreamReader可以自定义编码形式
            new FileInputStream("d:/java/javaIO/copy.txt")));
    PrintWriter pw = new PrintWriter("d:/java/javaIO/copy3.txt");

    查看全部
  • IO流:Java输入输出的基础
    字节流、字符流

    1.字节流
    1)InputStream、OutputStream
        InputStream抽象了应用程序读取数据的方式
        OutputStream抽象了应用程序写出数据的方式
    2)EOF = End  读到-1就读到结尾
    3)输入流基本方法(应用程序从键盘读入程序写到了File.txt文件中去)
    int b = in.read(); 读取一个字节无符号填充到int低八位    -1是EOF(结束)    in代表输入流的对象
    in.read (byte[] buf) 读取数据填充到字节数组buf
    in.read (byte[] buf,int start, int size)    读取数据到字节数组buf,从buf的start位置开始,存放size长度的数据
    4)输出流基本方法
    out.write(int b)写出一个byte到流,b的低8位
    out.write(byte[] buf)将buf中的字节数组都写出到流
    out.write(byte[] buf, int start, int size)字节数组buf从start位置开始写size长度的字节到流
    5)FileInputStream-->具体实现了在文件上读取数据(继承了InputStream)
    6)FileOutputStream-->具体实现了向文件中写出byte数据的方法(继承了OutputStream)
    7)DataOutputStream/DaraInputStream
        对“流”功能的扩展,可以更加方便的读取int、long、字符等类型数据
        DataOutputStream
            writeInt() / writeDouble() / writeUTF()
    8)BufferInputStream & BufferOutputStream
    这两个流类为IO提供了带缓冲区的操作,一般打开文件进行写入或读取操作时,都会加上缓冲,这种流模式提高了IOde性能
    从应用程序中把输入放入文件,相当于将一缸水倒入到另一个缸中:
    FileOutputStream-->write()方法:相当于一滴一滴的把水转移过去
    DataOutStream-->writeXxx()方法:相当于一瓢一瓢把水转移过去
    BufferedOutStream-->write方法更方便,相当于一瓢一瓢先放入桶中,再转移



    查看全部
  • IO流:Java输入输出的基础
    字节流、字符流

    1.字节流
    1)InputStream、OutputStream
        InputStream抽象了应用程序读取数据的方式
        OutputStream抽象了应用程序写出数据的方式
    2)EOF = End  读到-1就读到结尾
    3)输入流基本方法(应用程序从键盘读入程序写到了File.txt文件中去)
    int b = in.read(); 读取一个字节无符号填充到int低八位    -1是EOF(结束)    in代表输入流的对象
    in.read (byte[] buf) 读取数据填充到字节数组buf
    in.read (byte[] buf,int start, int size)    读取数据到字节数组buf,从buf的start位置开始,存放size长度的数据
    4)输出流基本方法
    out.write(int b)写出一个byte到流,b的低8位
    out.write(byte[] buf)将buf中的字节数组都写出到流
    out.write(byte[] buf, int start, int size)字节数组buf从start位置开始写size长度的字节到流
    5)FileInputStream-->具体实现了在文件上读取数据(继承了InputStream)
    6)FileOutputStream-->具体实现了向文件中写出byte数据的方法(继承了OutputStream)
    7)DataOutputStream/DaraInputStream
        对“流”功能的扩展,可以更加方便的读取int、long、字符等类型数据
        DataOutputStream
            writeInt() / writeDouble() / writeUTF()


    查看全部
  • RandomAcessFile
    java 提供的对文件类型的访问类,即可以读文件,也可以写文件
    支持随机访问文件,可以访问文件的任意位置

    1.Java文件模型
        在硬盘上的文件是byte byte byte存储的,是数据的集合
    2.打开文件
        有两种模式“rw”读写        “r”只读
        RandomAcessFile raf = new RandomAcessFile ( file , "rw");
        文件指针,打开文件时指针在开头 pointer = 0
    3.写方法
        raf.write(int)-->只写一个字节(后8位),同时指针指向下一个位置,准备再次写入
    4.读方法
        int b = raf.read()-->读一个字节
    5.文件读写完成以后一定要关闭(Oracle官方说明)
        

    查看全部
  • 列出File的一些常用操作:过滤、遍历等
    isDirectory()方法用于判断File类的对象是否是目录
    String[] filenames = dir.list(); //返回的是字符串数组,直接子的名称,不包含子目录下的内容
    如果要遍历子目录下的内容就需要构造File对象做递归操作吗,File提供了直接返回File对象的api
    File[] files = dir.listFiles(); 返回的是直接子目录(文件)的抽象

    if(file.isDirectory())

    //递归,最终列出包括其子目录下的所有文件(不包含子目录)

    listDirectory(file);


    查看全部
    1 采集 收起 来源:遍历目录

    2018-10-18

  • File类的使用
    java.io.File类用于表示文件(目录)
    File类只用于表示文件(目录)的信息(名称、大小等),不能用于文件内容的访问

    file.mkdir();     //file.mkdirs();    //创建这个文件夹
    file.delete();//删除这个文件夹


    查看全部
  • JAVA I/O 输入输出流
        编码问题
        File类的使用
        RandomAcessFile的使用
        字节流的使用
        字符流的使用
        对象的序列化和反序列化

    编码:java默认的编码形式 GBK(中文系统下ANSI编码)
        GBK编码:中文占2字节,英文占1字节
        utf-8编码:中文占3字节,英文占1字节
        utf-16be编码:中文占2字节,英文占2字节
    编码是什么格式,解码就要用什么格式,否则会报错
    文本文件就是字节序列,可以是任意编码的字节序列
    如果我们在中文机器上直接创建文本文件,该文本文件只认识ANSI编码(GBK)
    联通、联是一种巧合,他们刚好符合了utf-8编码的规则


    查看全部
    1 采集 收起 来源:文件的编码

    2018-10-18

  • 序列化
    查看全部
  • 概念
    查看全部
  • 字符流实例
    查看全部
  • 缓冲流复制
    查看全部
    0 采集 收起 来源:字节缓冲流

    2018-10-12

  • 数据流
    查看全部
  • 拷贝
    查看全部
  • 文件输出
    查看全部
  • 2
    查看全部

举报

0/150
提交
取消
课程须知
亲,为了更好的学习本门课程,需要您对二进制的知识有所了解,还要熟悉Java的基本语法和面向对象的知识。
老师告诉你能学到什么?
1、了解文件编码。 2、能够对文件和目录进行管理操作。 3、能够应用字节流和字符流对文件进行读写操作。 4、能够对对象进行序列化和反序列化。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!