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

文件传输基础——Java IO流

难度入门
时长 2小时 0分
学习人数
综合评分9.67
669人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • File.separator 设置分隔符

    查看全部
  • RandomAccessFile是Java提供访问文件内容的类,既可以读文件也可以写文件

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

    1. java文件模型:

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

    2. 打开文件

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

      RandomAccessFile raf = new RandomAccessFile(file,打开模式);

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

    3. 写方法

      raf.write(int)-->只写一个字节(后8位),同时指针指向下一个位置,准备再次写入

    4. 读方式

      int b =raf.read()-->一次读一个字节

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


    查看全部
  • package com.xin.file;
    import java.io.File;
    import java.io.IOException;
    /** 
     * File类:显示文件或者目录的信息(文件名或者目录名、文件大小) 
     * 通过java.io.file类操作硬盘上的文件或目录,不能访问文件内容 
     * @author 57602 
    * */
    public class demo { 
        public static void main(String[] args) throws IOException {  
        //创建一个文件对象  
        File file = new File("F:\\学习视频\\java基础");  
        //用File.separator设置分割符,不论在什么操作系统下都能识别
        //File file = new File("F:"+File.separator+"学习视频"+File.separator+"java基础");
        //判断目录是否存在  
        System.out.println(file.exists());    
        File file1 = new File("F:\\学习视频\\java基础\\imooc");  
        System.out.println(file1.exists());  
        //若不存在则创建该目录  
        if(!file1.exists()) {  
        //创建一级目录   
        file1.mkdir();   
        //file1.mkdirs();创建多级目录  
        }else {   
        //若存在则删除该目录   
        file1.delete();  
        }    
        //创建文件  
        //File file2 = new File("F:\\学习视频\\java基础\\日记.txt");  
        File file2 = new File("F:\\学习视频\\java基础", "日记.txt");  
        System.out.println(file2.isDirectory());  
        if(!file2.exists()) {
           file2.createNewFile();
        }else {
           file2.delete();  
        }  
        //常用File对象的API    
        System.out.println(file2);
        //获取目录  
        System.out.println(file2.getAbsolutePath());
        //获取文件的绝对路径  
        System.out.println(file2.getParent());
        //获取文件的父目录  
        System.out.println(file2.getName();//获取文件名  
        System.out.println(file2.getParentFile());//获取父目录
        System.out.println(file2.getParentFile().getAbsolutePath());//获取父目录的绝对路径
        }
    }
    查看全部
  • 文件的编码

    GBK:中文占2个字节,英文占1个字节

    UTF-8:中文占3个字节,英文占1个字节

    //将一个字符串转换成指定编码的字节序列
    byte[] bytes = str.getBytes("编码格式");
    //将一个字符串转换成字节序列时没有指定编码格式则默认是当前项目的默认编码格式
    byte[] bytes = str.getBytes();

    java是双字节编码,其编码格式是utf-16be

    byte[] bytes = str.getBytes("utf-16be");

     当字节序列是某种编码时,如果要把字节序列转化成字符串,也需要通过指定编码的方式转化,否则会乱码

    String str = new String(bytes,"utf-16be");

    文本文件就是字节序列,可以是任意编码的字节序列,如歌在中文系统上直接创建文本文件,那么该文本文件只认识ansi编码

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

    2020-06-28

  • 对子类对象进行反序列化操作时,如果其父类没有实现序列化接口,那么其父类构造函数会被调用,如果实现了序列化接口,反序列化时该父类可以直接从序列化时指定的用于存储的文件里读取数据

    查看全部
  • 一知半解,以后回来看

    查看全部
  • 将读到的"字符"向"字符串"做转换.

    查看全部
  • 奇迹出现!

    控制台直接打印出文本文件内容.

    当然因为是"字符流"而不是"字节流"

    查看全部
  • OutputStreamWriter 提供char流到byte流,按照编码处理<br/>
    查看全部
  • InputStreamReader 完成byte流解析为char流<br/>
    查看全部
  • "文本是byte byte byte... 的数据序列"    这里我明白byte的意思了 意思是文件就是由一个个byte组成的 也就是八位的"数据"(这里还不敢说是字符)


    文本文件是文本序列.

    查看全部
  • 缓冲方法中的flush 是必须的.

    而且读取和写入流用完后都需要关闭.

    查看全部
    0 采集 收起 来源:字节缓冲流

    2020-06-01

  • FileOutputStream    DataOutputStream    BufferedOutputStream 三个的对比

    查看全部
    0 采集 收起 来源:字节缓冲流

    2020-06-01

  • writeChars 使用JAVA默认的UTF16BE编码 写成

    查看全部
  • 写入流 最后加入 "flush()" 视频中说: 对字节流 flush"可写可不写"

    查看全部

举报

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

微信扫码,参与3人拼团

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

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