zoukankan      html  css  js  c++  java
  • 字节流、IO异常的处理、字节输入输出流、字符流、字符输入输出流、复杂文件

    第1章     字节流

    IO分字节流和字符流,字符流只能TXT文件,字节流都可以

    字节流分字节输入流和字节输出流

    1.1                字节输出流OutputStream

    OutputStream是抽象类

    1.1.1    FileOutputStream类

    l  构造方法

     

     

    1.1.1    给文件中续写和换行(输出流)

     

    1.2                IO异常的处理

     

    1.3                字节输入流InputStream

    1.3.1    FileInputStream类

    l  构造方法

     

     

    FileInputStream类读取数据read方法

    在读取文件中的数据时,调用read方法,实现从文件中读取数据

     

    字节流两种读取方式

    1、一个字节一个字节的

     

    2、一数组一数组的

     

    第2章     字符流

    字符流跟字节流一个样,就是调用的方式转换了一下

    2.1                字符编码表

    最常用的两种码表

    ascii: 一个字节中的7位就可以表示。对应的字节都是正数。0-xxxxxxx

    GBK:目前最常用的中文码表,2万的中文和符号。用两个字节表示,其中的一部分文字,第一个字节开头是1,第二字节开头是0

    能识别中文的码表:GBK、UTF-8;正因为识别中文码表不唯一,涉及到了编码解码问题。

    对于我们开发而言;常见的编码 GBK  UTF-8  ISO-8859-1

    文字--->(数字) :编码。 “abc”.getBytes()  byte[]

    (数字)--->文字  : 解码。 byte[] b={97,98,99}  new String(b,0,len)

    2.2                字符输入流Reader

    Reader,读取字符流的抽象超类。所以得用FileReader类

     

    l  read():读取单个字符并返回

    l  read(char[]):将数据读取到数组中,并返回读取的个数。

    2.2.1    FileReader类

     

    一个字节一个字节的

     

    一数组一数组的

     

    2.3                字符输出流Writer

     

    2.3.1    输出FileWriter类

     

    这里的100是用的ACSII表,系统自动解码转换

    2.4                flush()和close()的区别?

     

    flush():将流中的缓冲区缓冲的数据刷新到目的地中,刷新后,流还可以继续使用。

    close():关闭资源,但在关闭前会将缓冲区中的数据先刷新到目的地,否则丢失数据,然后在关闭流。流不可以使用。如果写入数据多,一定要一边写一边刷新,最后一次可以不刷新,由close完成刷新并关闭。

    代码执行之后就释放一下,因为所有代码都在一个缓存区力,要是代码量多了会占用太多缓存区,

    简单说,就和吃饭一样,flush就跟吃饭一样,flush就是吃一口,和一口水换换

    close就是吃完饭再喝水

    2.4.1    复制文本文件

    字节流复制文件

     

    字符流复制文件

     

    可以看得出,只是调用的方式转换了一下。

    图解

    读取文件图解

     

    文件复制图解

     

  • 相关阅读:
    Unix下可用的五种 I/O 模型
    mysql查看死锁和解除锁
    MySQL按日期分组并统计截止当前时间的总数(实例教程)
    Java对象为啥要实现Serializable接口
    Linux下java进程CPU占用率高分析方法(二)
    Linux下java进程CPU占用率高分析方法(一)
    futex的设计与实现
    Java 理论与实践-非阻塞算法简介
    Java Web J2EE下的两大框架SSH和SSM对比
    Canvas文本操作
  • 原文地址:https://www.cnblogs.com/pandam/p/11186986.html
Copyright © 2011-2022 走看看