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

文件传输基础——Java IO流

难度入门
时长 2小时 0分
学习人数
综合评分9.67
669人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • BufferedInputStream、BufferedOutputStream使用缓冲区来进行数据写入写出操作,提高性能。对比其他方式输入输出: FileInputStream/FileOutputStream 每次一个字节的读写 DataInputStream/DataOutputStream 每次一个类型数据的读写。如:一次写入一个int类型的数据,相当于一次写入四个字节。 BufferedInputStream/BufferedOutputStream 每次读写一个缓冲区大小的数据。每次写入时必须调用实例的flush()方法来清空缓冲区。
    查看全部
    0 采集 收起 来源:字节缓冲流

    2017-07-17

  • DataInputStream、DataOutputStream是专门为读取写入数据类型而包装的类。包括,int、bouble、long、char、UTF-8字符串等,默认write写入是以UTF-16be的编码方式写入。。
    查看全部
  • 写文件: write方法只能写第八位,写一个int型需要写四次。如: int a = 10; out.write(a >>> 24); out.write(a >>> 16); out.write(a >>> 8); out.write(a);
    查看全部
  • 1、牢记循环读文件的方式 2、byte类型8位,int类型32位。byte转int时为避免数据转换错误,通过&0xff将高24位清零
    查看全部
  • InputStream、OutputStream输入输出流接口的使用
    查看全部
  • RandomAccessFile读写文件识记。难点:右移符号的使用、二进制
    查看全部
  • FileOutput fop = new FileOutputStream(File file); //创建文件写入操作,如果不存在,系统自动创建文件 FileInputStream fip = new FileInputStream(File file); //创建文件写出操作 文件复制时,需要创建源文件和目的文件,通过读取源文件的内容向目的文件中写入 可使用数组进行文件的存储如: byte[] buf = new byte[可写入长度//1*1024];功能类似转换器,能提高效率 对于大文件 可使用while循环 例: FileInputStream fip = new FileInputStream(文件路径); byte[] buf = new byte[20*1024]; int b = 0; while((b = fip.read(buf,0,buf.length))!=-1){ for(int i = 0; i < b;i++){ System.out.println(Integer.toHexString(buf &0xff) + " "); } } 其中 oxff是去掉字节前面的24位0操作
    查看全部
  • FileInputStream in = new FileInputStream(fileName); byte[] buf = new byte[20 * 1024]; //从in中批量读取字节,放入到buf这个字节数组中,从第0个位置开始放,最多放buf.length个,返回的是读到的字节的个数 int bytes = in.read(buf,0,buf.length);//一次性读完,说明字节数组足够大 in.read(byet[],int,int)返回的是读到的字节的个数。是一个int 返回值。 读文件内容 常用的 标准的 方式。 FileInputStream in = new FileInputStream(fileName); byte[] buf = new byte[20 * 1024]; int byetes = 0; int j = 1; while((bytes = in.read(buf,0,buf.length))!=-1){ for(int i = 0; i < bytes; i++){ System.out.print(Integer.toHexSting(buf[i] & 0xff)+ " "); if( j++ % 10 == 0){ System.out.println(); } } }
    查看全部
  • inputStream的读取方法
    查看全部
  • RandomAccessFile类 RandomAccessFile类 是java提供的对文件内容的访问,即可以读取文件,也可以写文件。RandomAccessFile类支持随机访问文件,可以访问文件的任意位置 ********RandomAccessFile类实现步骤 (1)java文件的模型 在硬盘上的文件是byte byte byte 存储的,是数据的集合 (2)打开文件 有两种模式“rw”(读写) “r”(只读) RandomAccessFile raf = new RandomAccessFile(File对象,"rw"); 文件指针,打开文件时指针在开头 pointer = 0; (3)写方法 raf.write(int)--->只写一个字节(后8位),同时指针指向下一个位置,准备再次写入 (4)读方法 int b = raf.read()--->读一个字节 (5)关闭流 文件读写完成以后一定要关闭流(Oracle官方说明) *RandomAccessFile 类的方法 raf.getFilePointer();--->获取指针的位置 raf.writeInt(i);//写入一个int raf.seek(0);//移动指针到index的位置 raf.length();返回的是long //一次性读取,把文件中的内容都读取到字节数组中 byte[] buf = new byte[(int)raf.length()] raf.read(buf); //变成字符串,装入数组中进行输出 Arrays.toString(buf); for(byte b : buf){ //以16进制进行输出 Integer.toHexString(b&0xff)+""; } raf.close();
    查看全部
  • String[] filenames = file.list() //返回的是字符串数组,列出当前目录下的所有子目录和文件,不包含子目录下的内容 如果要遍历子目录下的内容就需要构造成File对象做递归操作,File提供了直接返回File对象的API File[] files = file.listFiles(); //返回的是File数组,列出当前目录下的所有子目录和文件,不包含子目录下的内容 //递归,遍历出该目录下所有文件信息,包括子目录下的文件 for(File f :files){ if(f.isDirectory){ //递归遍历该目录下的子目录的信息 listDirectory(file); } else{ System.out.pritln(file); } }
    查看全部
    0 采集 收起 来源:遍历目录

    2017-07-17

  • 1、创建File文件对象 param: 文件地址 File file = new File("E:\\javaio"); or new File("E:" + File.sepatator); File.sepatator 不同系统通用分隔符 file.exists() 文件或目录是否存在 file.mkdir() 创建文件夹 file.mkdirs() 创建层级文件夹,不需要父级文件夹存在 file.isDirectory() bool 是否是一个目录 如果是返回时TRUE,不是或者不存在返回FALSE file.isFile() bool 是否是一个文件 File file2 = new File("E:\\java\\test.txt"); File file2 = new File("E:\\java","test.txt");
    查看全部
  • 1、创建File文件对象 param: 文件地址 File file = new File("E:\\javaio"); or new File("E:" + File.sepatator); File.sepatator 不同系统通用分隔符 file.exists() 文件或目录是否存在 file.mkdir() 创建文件夹 file.mkdirs() 创建层级文件夹,不需要父级文件夹存在 file.isDirectory() bool 是否是一个目录 如果是返回时TRUE,不是或者不存在返回FALSE file.isFile() bool 是否是一个文件 File file2 = new File("E:\\java\\test.txt"); File file2 = new File("E:\\java","test.txt");
    查看全部
  • InputStream读的方法
    查看全部
  • 机器上的文本文件,如果是直接创建的,就只认识ansi, 如果是粘贴过来的,则都认识 gbk:中文占用2个字节,英文占用1个字节 utf-8:中文占用3个字节,英文占用1个字节 java是双字节编码:utf-16be:中文占用2个字节,英文占用2个字节 转换成16进制输出时要与上0xff,屏蔽前面24位,取后8位 Integer.toHexString(b&0xff) 指定编码格式:byte[] bytes=s.getBytes(“指定编码”); 字节序列在转换成字符串的时候要指定编码格式: String str=new String(bytes,“指定编码”);(指定的编码格式要与字节序列指定的编码格式相同)
    查看全部
    0 采集 收起 来源:文件的编码

    2018-03-22

举报

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

微信扫码,参与3人拼团

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

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