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

文件传输基础——Java IO流

难度入门
时长 2小时 0分
学习人数
综合评分9.67
669人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • RondomAccessFile的使用步骤
    查看全部
  • randomAccessFile基本步骤了解
    查看全部
  • 序列化: transient 关键字:被transient修饰的元素,该元素不会进行jvm默认的序列化,但可以自己完成这个元素的序列化 注意: (1)在以后的网络编程中,如果有某些元素不需要传输,那就可以用transient修饰,来节省流量;对有效元素序列化,提高性能。 (2)可以使用writeObject自己完成这个元素的序列化。ArrayList就是用了此方法进行了优化操作。ArrayList最核心的容器Object[] elementData使用了transient修饰,但是在writeObject自己实现对elementData数组的序列化。只对数组中有效元素进行序列化。readObject与之类似。 (3)java.io.ObjectOutputStream.defaultWriteObject(); // 把jvm能默认序列化的元素进行序列化操作 java.io.ObjectOutputStream.writeInt(age);// 自己完成序列化 (4) java.io.ObjectOutputStream.defaultReadObject();// 把jvm能默认反序列化的元素进行反序列化 this.age = java.io.ObjectOutputStream.readInt(); // 自己完成age的反序列化操作
    查看全部
  • RandomAccessFile java提供的对文件内容的读写访问,支持随机访问文件,可以访问文件的任意位置 (1)java 文件模型 在硬盘上的文件是byte存储的 ,是数据的集合 (2)打开文件 有两种模式 rw(读写) r(只读) RandomAccessFile raf-new RandomAccessFile(file "rw") 文件指针,打开文件时指针在开头 pointer=0 (3)写方法 raf write(int)--->之写一个字节(后8位)同事指针指向下一个位置,准备再次写入 (4)读方法 int b=raf.read()-->读一个字节 (5)文件读写完成之后一定要关闭
    查看全部
  • File <br> 文件和目录路径名的抽象表示形式。 通过方法 exists()判断是否存在该文件。 通过方法idDirectory()判断是否是目录。 方法list()返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
    查看全部
    0 采集 收起 来源:遍历目录

    2018-03-22

  • Java.IO.File类表示文件或目录,只用于表示文件或目录得信息,不能用于文件的访问。 常用的API: 1.创建File对象:File file=new File(String path);注意:File.seperater();获取系统分隔符,如:”\“. 2.boolean file.exists();是否存在. 3.file.mkdir();或者file.mkdirs();创建目录或多级目录。 4.file.isDirectory()或者file.isFile()判断是否是目录或者是否是文件。 5.file.delete();删除文件或目录。 6.file.createNewFile();创建新文件。 7.file.getName()获取文件名称或目录绝对路径。 8.file.getAbsolutePath()获取绝对路径。 9.file.getParent();获取父级绝对路径。 10.file.getSize();获取文件大小。 11.file.getFormat();获取文件格式名。
    查看全部
  • 文件编码: 1.gbk:一个中文字符占两个字节,一个英文字符占一个字节,是转换成字节序列时的默认编码方式。 2.utf-8:一个中文字符占三个字节,一个英文字符占一个字节 3.utf-16be:java的编码方式,一个中文和一个英文字符都是占两个字节 4.字节序列转换成字符时要采用相同的编码方式,否则会乱码 5.文本文件就是字节序列,可以是任意编码的字节序列,但是如果直接在中文机器上创建文本文件,那么该文本文件只认识ansi编码
    查看全部
    0 采集 收起 来源:文件的编码

    2016-07-25

  • 字符流
    查看全部
  • 字符流
    查看全部
  • 几种重要的字节流读写方法
    查看全部
  • 1、byte 类型 8 位,int 类型 32 位,为了避免数据转换错误,通过 & 0xff 将高 24 位清零 2、long time = System.currentTimeMillis() 当前时间与协调世界时 1970 年 1 月 1 日午夜之间的时间差(以毫秒为单位测量) 3、is.read() 单字节适合读取 小 文件 is.read(byte[] bytes,int star,int size) 字节数组适合读取 大 文件 读取文件最常用的是批量读取int bytes = fis.read(buf, 0 , buf.length); FileInputStream文件输入 单字节输入即不用数组。 /** * 批量读取,对大文件而言效率高,也是我们最常用的读文件的方式 * @Inparam fileName * @throws IOException */ public static void printHexByByteArray(String fileName)throws IOException{ FileInputStream in = new FileInputStream(fileName); byte[] buf = new byte[8 * 1024]; /*从in中批量读取字节,放入到buf这个字节数组中, * 从第0个位置开始放,最多放buf.length个 * 返回的是读到的字节的个数 */ int bytes = in.read(buf,0,buf.length);//一次性读完,说明字节数组足够大 int j = 1; for(int i = 0; i < bytes;i++){ System.out.print(Integer.toHexString(buf[i] & 0xff)+" "); if(j++%10==0){ System.out.println(); } }
    查看全部
  • java双字节编码,默认使用 utf-16be:中文英文都占2个字节 字符数组转字符串的时候也需要改对应编码
    查看全部
    0 采集 收起 来源:文件的编码

    2016-07-24

  • gbk:中文2个字节,英文1个字节 utf-8:中文3个字节,英文1个字节
    查看全部
    0 采集 收起 来源:文件的编码

    2016-07-24

  • InputStream、OutputStream 抽象了应用程序读写数据方式(父类,抽象类) FileInputStream、FileOutputStream (子类) EOF=End 及文件结尾(in.read()=-1) 输入流基本方法 read(); int b=in.read();读取一个字节无符号填充到int的低八位,前面的24位补零。(int是32位,一个字节8位)-1是EOF in.read(byte[] buf);读取数据填充到字节数组buf in.read(byte[] buf,int start,int size),同上,从buf的start位置开始存放size长度的数据 输出流基本方法write(); out.write(int b); 写出一个byte到流,b的低八位 out.write(byte[] buf); 将buf字节数组都写入到流 out.write(byte[] buf,int start,int size);同上,详见read对应方法 FileInputStream 具体实现了文件上读取数据
    查看全部
  • byte[]数组的大小我们可以通过File的length()或者FileInptStream的available()来得到文件字节的大小,这样开辟出来的内存大小就跟文件的字节数是一致的。例如:byte[] buff = new byte[(int) fileNames.length()];因为length返回的是long类型的,最大数值可以支持1TB,而FileInputStream的availbale()返回的是int类型的,最大数值只能支持到1.99GB,所以使用length()可以避免很多不必要的错误和麻烦!
    查看全部

举报

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

微信扫码,参与3人拼团

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

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