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

文件传输基础——Java IO流

难度入门
时长 2小时 0分
学习人数
综合评分9.67
669人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • transient关键字

    在修饰某些变量时,这个变量不会被系统默认序列化,可以用其他类型来单独进行序列化。在反序列化时也必须进行相同类型的反序列化操作。

    //序列化

    private void writeObject(java.io.ObjectOutputStream s)throws java.io.IOException{

        s.defaultwriteObject();//将无trensient关键字修饰的元素进行系统默认类型的序列化操作。

        s.writeInt();//将transient关键字修饰的元素进行自定义的序列化操作。

    }

    //反序列化

    private void readObject(java.io.ObjectInputStream s)throws java.io.IOException{

    S.defaultReadObject();//将虚拟机默认反序列化的元素进行反序列化操作。

    this.stuage=s.readInt();//加了transient关键字的元素进行对应的序列化类型的反序列化。

    }

    transient关键字的作用在某些情况下能提高存储性能。

    查看全部
  • //对象的序列化(Serializable)与反序列化

    //对象的序列化就是将Object转换成byte序列,反之为反序列化。

    ObjectOutputStream(序列化流)/ObjectInputStream(反序列化流)。

    //序列化时对象必须实现序列化的接口,否则将出现异常。

    //只有将对象序列化以后才能反序列化。

    //对象ob序列化

    ObjectOutputStream oos=new ObjectOutputStream(FileOutputStream);

    Object ob=new Object(参数);

    oos.writeObject();

    oos.close();

    //对象反序列化

    ObjectInputStream ops=new ObjectInputStream(FileInputStream);

    Object ob1=(Object)ops.readObject();

    ops.close();

    查看全部
  • 读文件的典型方法

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

    2018-08-27

  • if((b<=in.read())!=-1){
      //单位数(即一位数)前面补0
    System.out.println("0");
      }

    https://img1.sycdn.imooc.com//5b83f207000188aa06940366.jpg

    查看全部
  • https://img1.sycdn.imooc.com//5b83f0d70001c91611490645.jpg

    https://img1.sycdn.imooc.com//5b83f0d70001586311600649.jpg

    DAIMA DAIMA DAIMA

    查看全部
  • 4)输出流基本方法

    out.write(int b)写出一个byte到流,b的低8位   

    out.write(byte[]buf)将buf字节数组都写入到流

    out.write(byte[]buf,int start,int size)字节数组buf从start位置开始写size长度的字节到流


    查看全部
  • IO流(输入流、输出流)字节流、字符流

    1.字节流

    1)InputStream、OutputStream InputStream抽象了应用程序读取数据的方式OutputStream抽象了应用程序写出数据的方式

    2)EOF=End 读到-1就读到结尾

    3)输入流基本方法

    int b=in.read0;读取一个字节无符号填充到int低八位.-1是EOF in.read(bytel buf)读取数据填充到字节数组buf in.read(byte[]buf,int start,int size)读取数据到字节数组buf从buf的start位置开始存放size长度的数据


    查看全部
  • Java.io.File类用于表示文件(目录)

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


    RandomAccessFile java提供的对文件内容的访问,既可以读文件,也可以写文件。

    RandomAccessFile支持随机访问文件,可以访问文件的任意位置


    查看全部
  • 文本文件就是字节序列

    可以是任意编码的字节序列

    如果我们在中文机器上直接创建文本文件,那么该文本文件只认识ansi编码


    打开文本,另存为时可以查看到编码类型https://img1.sycdn.imooc.com//5b83d7c20001dfdd14240794.jpg


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

    2018-08-27

  • /*当你的字节序列式某种编码时,这个时候想把字节序列变成
    *字符串,也需要用这种编码方式,否则会出现乱码
    */String str1=new String(bytes4);∥用项目默认的编码
    System.outprintln(str1);
    String str2=new String(bytes4,"utf-16be");
    System.outprintin(str2);


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

    2018-08-27

  • //把字符串转化为字节数组
    Strings="慕课ABC";
    byte[] bytes1=s.getBytes();
    for(byte b:bytes1){
    //把字节(转换成了int)以16进制的方式显示
    System.outprintln(Integer.toHexstring(b&Oxff));//0xff--把前面24个零去掉,只留下后八位

    gbk--中文占用2个字节,英文占用1个字节

    utf-8--中文占用3个字节,英文占用1个字节

    utf-16be--中文占用2个字节,英文占用2个字节

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

    2018-08-27

  • RandomAccessFile支持随机访问文件,可以访问文件的任意位置

    (1)java文件模型

    在硬盘上的文件是byte byte byte存储的,是数据的集合

    (2)打开文件

    有两种模式"rw"(读写)"r"(只读)

    RandomAccessFile raf=new RandomeAccessFile(file,"rw")

    文件指针,打开文件时指针在开头pointer=0;

    (3)写方法

    raf.write(int)--->只写一个字节(后8位,如raf.write('A' 输出显示的为65),同时指针指向下一个位置,准备再次写入(4)读方法

    int b=raf.read0--->读一个字节

    (5)文件读写完成以后一定要关闭(Oracle官方说明)


    查看全部
  • 对象做递归操作,File提供了直接返File]files =dir.listFiles0;/返回的是直接子目录(文件)的抽象if(files!=null&&files.length>0){

    for(File file:files){

    if(file.isDirectory0){

    //递归

    listDirectory(file);

    }else{

    System.outprintln(file);

    }

    }

    }


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

    2018-08-27

  • String[] filenames=dir.list();//返回的事字符串数组,即当前目录下子文件的名称


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

    2018-08-27

举报

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

微信扫码,参与3人拼团

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

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