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

文件传输基础——Java IO流

难度入门
时长 2小时 0分
学习人数
综合评分9.67
669人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • RandomAccessFile类:java提供的对文件内容的访问类,既可以读文件,也可以写文件。RandomAccessFile支持随机访问文件,可以访问文件的任意位置。 (1)Java文件模型: 在硬盘上的文件是字节byte存储的,是数据的集合。 (2)打开文件: 有两种模式"rw"(读写)、"r"(只读)。 RandomAccessFile raf = new RandomAccessFile(file,"rw"); 因为为随机访问文件,所以内部含有一个文件指针,打开文件时指针在开头pointer = 0;指针会随着读写操作移动。 (3)写方法: raf.write(); //只写一个字节(后8位),同时指针指向下一个位置,准备再次写入。要输入较大的数时,要用到移位操作。 (4)读方法: raf.read(); //从指针在的位置读一个字节。必须把指针移到头部。 (5)文件读写完成以后一定要关闭
    查看全部
  • 字符流: JAVA的文本(char)是16位无符号整数,是字符的unicode编码(双字节编码) 文件是byte数据序列,文本文件是(char)文本序列按照某种编码方案(gbk,utf-8,utf-16be)序列化为byte的存储。 字符流Reader和Writer操作的是文本文件。字符的处理,一次处理一个字符。 字符的底层依然是基本的字节序列。 InputStreamReader--->(按照编码)完成byte解析为char. OutputStreamWriter--->(按照编码)完成char到byte
    查看全部
  • FileInputStream/FileOutputStream: 按字节读写,较慢。 DataInputStream/DataOutputStream:包装了数据类型(int,double,char等),将new的FileInputStream/FileOutputstream对象传入,进行读写操作. BufferedInputStream/BufferedOutputStream: 创建缓冲区存取数据,提高读写效率。
    查看全部
    0 采集 收起 来源:字节缓冲流

    2017-03-17

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

    2017-03-17

  • 定义一个字节数组来接收读入的数据,并返回一个接收到的字节个数。 1、byte[] buf=new byte[自定义容量大小];如:[20*1024].... 2、int by=in.read(buf,起始位置,buf.length); 输出时,循环:for(int i=0;i<by;i++){ }; 注:i<by即是输出实际读到个字节个数,因为读到最后,数组中不一定是满的,所以不用i<buf.length
    查看全部
  • 继承了Inputstream、Outputstream输入输出流类。 1、输入时:用一对应的数据类型变量接收读入的内容。如int a=in.read(); 或者定义一个字节数组,将读入的数据填充进去。如:in.read(byte[] buf); 也可以将读入的数据填充到字节数组的指定开始位置,和要填充的数据长度。 如:in.read(byte[] buf, int start, int size).
    查看全部
  • RadomAccessFile类对文件进行读写操作。 数据是按byte存储的,RadomAccessFile类的write和read方法,每次读一个字节或写一个字节。FilePointer指针指向读写位置。(通过RadomAccessFile对象获取指针位置)。 完成读写操作后,通过RadomAccessfile对象关闭操作。 例:RadomaccessFile rw=new RadomAccessFile(文件名,“rw”或“r”); rw.getFilePointer();------>获取指针位置。 rw.close();---------------->关闭。 File类创建或打开一个文件,RadomAccessFile类进行读写操作。
    查看全部
  • File类中的list方法返回的是一个String数组。 listFile方法返回的是文件数组,在接收后,可以继续判断该返回的数组是否有内容,是否为文件夹,做递归操作,直到列出所有文件。
    查看全部
    1 采集 收起 来源:遍历目录

    2017-03-17

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

    2017-03-17

  • File类用于表示和判断文件(目录)的存在与否,大小,名称,路径等信息。不能用于文件内容的访问操作。 创建对象:File f=new File("文件名或目录等");
    查看全部
  • 每个项目都有一个默认的字符集。在从其他项目复制文件过来时,要注意字符序列问题。 gbk字符序列:一个中文占用2个字节,英文占1个字节; utf-8字符序列:一个中文占用3个字节,英文占1个字节; utf-16be字符序列:中文和英文各占用2个字节。
    查看全部
    1 采集 收起 来源:文件的编码

    2017-03-16

  • B_C
    计算程序运行时间: long start=System.currentTimeMillis(); long end=System.currentTimeMillis(); System.out.println(end-start);
    查看全部
    0 采集 收起 来源:字节缓冲流

    2017-03-16

  • B_C
    文件拷贝 public static void copyFile(File srcFile,File destFile)throws IOException{ if(!srcFile.exists()){ throw new IllegalArgumentException("文件"+srcFile+"不存在"); } if(!srcFile.isFile()){ throw new IllegalArgumentException(srcFile+"不是文件"); } FileInputStream in = new FileInputStream(srcFile); FileOutputStream out = new FileOutputStream(destFile); byte[] buf =new byte[8*1024]; int b; while((b=in.read(buf,0,buf.length))!=-1){ out.write(buf, 0, b); out.flush();//最好加上 } in.close(); out.close(); System.out.println("复制完成"); }
    查看全部
  • 换成双斜杠,转义字符
    查看全部
  • B_C
    public static void printHexByByteArray(String fileName)throws IOException{ FileInputStream in = new FileInputStream(fileName); byte[] buf = new byte[20 * 1024]; //从in中批量读取字节,放入到buf这个字节数组中,从第0个位置开始放,最多放buf.length个,返回的是读到的字节的个数 int bytes = in.read(buf,0,buf.length);//一次性读完,说明字节数组足够大 int j =0; for(int i = 0;i < bytes;i++){ if(buf[i] <= 0xf){ System.out.print("0"); } System.out.print(Integer.toHexString(buf[i]) + " "); if(j++%10==0){ System.out.println(); } } }
    查看全部

举报

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

微信扫码,参与3人拼团

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

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