zoukankan      html  css  js  c++  java
  • JavaIO流之字节流

    什么是字节?

    所谓字节(Byte),是计算机数据存储的一种计量单位。一个二进制位称为比特(bit),8个比特组成一个字节,也就是说一个字节可以用于区分256个整数(0~255)。由此我们可以知道,字节本是面向计算机数据存储及传输的基本单位,后续的字符也就是以字节为单位存储的,不同编码的字符占用的字节数不同。

    那么在Java中,除了存储的意义外,Java还将字节Byte作为一种基本数据类型,该数据类型在内存中占用一个字节,用于(-128~127)范围内的整数

    byte a = -128;
    byte b = 127;
    总的来说,字节在Java中有两种含义:

    存储的单位
    Java的数据类型,用于表示-128~127范围的整数

    什么是字符?

    计算机底层存储的是字节,字符的设计则是用于展示符号。屏幕上显示的各种文字,数字,符号等就是解码的字符。所以我们说字符是用来显示的符号,它将存储的字节转换成人们看得懂的符号,因此字符的核心就是定义字节与展示符号之间的关系,这种映射关系通常也叫做编码。

    字节流的使用:

    注意:InPut输入是硬盘向内存输入,OutPut输出是内存向硬盘输出,我们站在内存的角度。


    字节流读入的read方法:

    一次读取一个字节:

    从aniki.txt中读字符,当已经没有字符可以读取的时候返回-1



    我们利用返回-1可以写出循环来遍历整个字节文件

    一次读取一个字节数组:




    aniki.txt的内容其实是的是:
    abcde/r/nfghj/r/nklmn
    所以输出的是:
    abcde
    /r/nfgh
    写循环来遍历整个文件:

    字节流写入的write方法:

    字节流写数据例:

    追加写入例:

    使用read和write方法来复制文件:


    异常处理代码:

    字节缓冲流:

    我们的字节流是把内存中的字节/字节数组(外部输入的或者是程序内的)立即输出到硬盘,
    而字节缓冲流的作用是在字节流把字节从内存输出到硬盘之前,提供一个缓冲区,让这些字节先进入缓冲区存储,
    当缓冲区满或者在未满的情况下使用"字节缓冲输出流对象".flush();方法,强制输出和清空缓冲区。

    缓冲区不满的情况下调用"字节缓冲输出流对象".flush();才可以写进到硬盘文件。
    否则数据存储在缓冲区,文件内没有数据。但是close()方法会调用一次flush()方法。


    字节缓冲流使用read和write方法实现复制文件:


  • 相关阅读:
    Valid Palindrome
    Linux经常使用命令(十七)
    JavaSE入门学习8:Java基础语法之方法
    Eclipse导入Maven项目出现错误:Unsupported IClasspathEntry kind=4
    HTTP ERROR 503
    演示账号激活的过程:注冊——>向指定邮箱发送邮件——>用户登录邮箱,激活账号
    Oracle update+with的使用场景
    代理模式(静态代理+动态代理)——JAVA
    BZOJ1611: [Usaco2008 Feb]Meteor Shower流星雨
    BZOJ1724: [Usaco2006 Nov]Fence Repair 切割木板
  • 原文地址:https://www.cnblogs.com/maomaodesu/p/11900936.html
Copyright © 2011-2022 走看看