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

文件传输基础——Java IO流

难度入门
时长 2小时 0分
学习人数
综合评分9.67
669人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • 写一个int型进去
    查看全部
  • File遍历目录与文件 public static void listDirectory(File dir) throws IOException { // 判断是否是否存在 if (!dir.exists()) { throw new IllegalArgumentException("目录:" + dir + "不存在"); } // 判断是否为目录 if (!dir.isDirectory()) { throw new IllegalArgumentException(dir + "不是目录"); } // list方法用于列出当前目录下的子目录和文件,返回的是字符串数组,不包含子目录下的文件 /*String[] filenames = dir.list(); for (String string : filenames) { System.out.println(dir + "\\" + string); } */ // 如果要遍历子目录下的内容就需要构造成File对象做递归操作,File提供了直接返回File对象的方法 // 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。 File[] files = dir.listFiles(); for (File fl : files) { if (fl.isDirectory()) { // 递归 listDirectory(fl); } else { System.out.println(fl); } } } 遍历子目录下的内容 构造成File对象做递归操作 //throws IOException 回避了IO的抛出异常 File[] files = dir.listFiles();//返回的是直接子目录(文件)的抽象 if (file!=null && files.length > 0){ for(File file:files){ if(file.isDrectory()){ listDirectory(file); }else{ System.out.println(file); } } }
    查看全部
    2 采集 收起 来源:遍历目录

    2018-03-22

  • 1.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的反序列化操作
    查看全部
  • 1.对象序列化,就是将Object转换成byte序列,反之叫对象的反序列化 2.序列化流(OjectOutputStream)是过滤流----writeObject 反序列化流(ObjectInputStream)----readObject 3.序列化借口(Serializable) 对象必须实现序列化借口,才能进行序列化,否则将出现异常 这个借口,没有任何方法,只是一个标准
    查看全部
  • File类常用API: 1、exists();判断文件(目录)是否存在 2、mkdir();创建一级目录;mkdirs()创建多级目录 3、delete();删除文件(目录) 4、isDirectory();判断是否是一个目录 5、isFile();判断是否是一个文件 6、createNewFile();创建一个文件 7、getAbsolutePath();获取绝对路径 8、getName()获取目录(文件)名称 9、getParent();获取父目录路径 10、getParentFile().getAbsolutePath();获取父目录文件的绝对路径
    查看全部
  • GBK,中文占两个字节,英文占一个字节,UTF-8,中文占用三个字节,英文还是一个字节 UTF-16BE,中文占两个字节,英文占两个字节
    查看全部
    0 采集 收起 来源:文件的编码

    2016-10-11

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

    2016-10-11

  • copyFile方法 速度最快
    查看全部
    0 采集 收起 来源:字节缓冲流

    2016-10-11

  • RandomAccessFile 类操作
    查看全部
  • gbk与uft-8编码不同点
    查看全部
    0 采集 收起 来源:文件的编码

    2016-10-10

  • GBK编码中文占用两个字节,英文占用1个字节 getByte("")可以什么都不携带,转换成字节序列的时候用项目默认的编码模式;或者携带某种编码模式,用引号括起来后使用
    查看全部
    0 采集 收起 来源:文件的编码

    2018-03-22

  • 8)DataOutoutStream/DataInputStream 对“流”功能的扩展,可以 更加方便的读取int,long,字符等类型数据 DataOutoutStream中 writeInt()/writeDouble()/writeUTF() 事例: public class DosDemo{ public static void main(String[] args)throws IOException{ String file = "demo/dos.dat"; DataOutputStream dos = new DataOutputStream(new FileOutputStream(file)); dos.writeInt(10); dos.writeInt(-10); dos.writeLong(10L); dos.writeDouble(10.5); dos.writeUTF("中国"); //采用utf-8编码写出 dos.writeChars("中国"); //采用utf-16be编码写出 dos.close(); } }
    查看全部
  • IO流中的COPY方法
    查看全部
  • 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(); } }
    查看全部

举报

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

微信扫码,参与3人拼团

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

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