1.字节流

  1.1 字节输出流OutputStream-抽象类,表示输出字节流的所有类的超类

  (1)void  close()  关闭此输出流并释放与此流相关的所有系统资源

  (2)void  flush()  刷新此输出流并强制写出所有缓冲的输出字节

  (3)void  write(byte[] b)  将b.length个字节从指定的byte数组写入此输出流

  (4)write  wirte(byte[] b,int off,int len)  将指定byte数组从偏移量off开始的len个字节写入此输出流

  (5)abstract void  write(int b)  将指定的字节写入此输出流

  1.2 FileOutputStream类

  (1)是OutputStream的子类,可以用来写入数据到文件,用于将数据写入File的输出流

  (2)构造方法

    FileOutputStream(File file)  创建一个向指定File对象表示的文件中写入数据的文件输出流

    FileOutputStream(String name)  创建一个向具有指定名称的文件中写入数据的输出文件流

  (3)续写和换行-构造函数中可以接受一个boolean类型的值,如果值为true,就会在文件末位继续添加

    FileOutputStream(File file,boolean append)  创建一个向指定File对象表示的文件中写入数据的文件输出流

    FileOutputStream(String name,boolean append)  创建一个向具有指定name的文件中写入数据的输出文件流

    通过在上一行末位或下一行开头加入\r\n实现换行

  (4)IO异常处理

    可以直接throws,或者用try...catch...finally

  1.3 字节输入流InputStream-抽象类,是表示字节输入流的所有类的超类

  (1)abstract int  read()  从输入流中读取数据的下一个字节,读取并返回,没有字节则返回-1

  (2)int  read(byte[] b)  从输入流中读取一定数量的字节,并将其存储在缓冲区数组b中,返回读取到的字节数

  1.4 FileInputStream类-InputStream类的子类,可以用来读取文件内容,从文件系统中的某个文件中获得输入字节

  (1)构造方法

    FileInputStream(File file)  通过打开一个到实际文件的连接来创建一个FileInputStream,该文件通过文件系统中的File对象file指定

    FileInputStream(String name)  通过打开一个到实际文件的连接来创建一个FileInputStream,该文件通过文件系统的路径名name指定

  (2)读取数据方法

    abstract int read()  从输入流中读取数据的下一个字节

    int  read(byte[] b)  从输入流中读取一定数量的字节,并将其存储在缓冲区数组b中

  1.5 字节流-文件复制

  (1)原理:读取一个已有的数据,并将这些读到的数据写入到另一个文件中

  (2)步骤:a.明确源和目的

         b.明确字节流、输入流和源相关联,输出流和目的关联

         c.使用输入流的读取方法读取字节,并将字节写入到目的文件中

         d.关闭资源

2.字符流

  2.1 字符编码表

  (1)ASCII:一个字节中的7位就可以表示,对应的字节都是正数 0-xxxxxxx

  (2)ISO-8859-1:拉丁码表latin,一个字节用的8位 1-xxxxxxx 负数

  (3)GB2312:简体中文码表,包含6000-7000中文和符号,用两个字节表示,其中的一部分是文字,第一个字节是负数,第二个字节可能是正数

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

    GB18030:最新的中文码表,目前还未正式使用

  (4)UNICODE:国际标准码表,无论什么文字,都用两个字节存储

    Java中的char类型用的就是这个码表,char c='a',占两个字节

    Java中的字符串是按照系统默认码表来解析,简体中文版字符串默认的码表是GBK

  (5)UTF-8:基于unicode,一个字节就可以存储数据,不要用两个字节存储,而且这个码表更加的标准化,在每一个字节头加入了编码信息

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

    常见的编码 GBK  UTF-8  ISO-8859-1

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

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

  2.2 字符输入流Reader-读取字符流的抽象类

  (1)int  read()  读取单个字符

  (2)int  read(char[] cbuf)  将字符读入数组

  2.3 FileReader类

  (1)FileInputStream用于读取诸如图像数据之类的原始字节流,要读取字符流,需要使用FileReader

  (2)构造方法

    FileReader(File file)  在给定从中读取数据的File的情况下创建一个新FileReader

    FileReader(String fileName)  在给定从中读取数据的文件名的情况下创建一个新FileReader

  2.4 字符输出流Writer-写入字符流的抽象类

  (1)void  write(char[] cbuf)  写入字符数组

  (2)abstract void  write(char[] cbuf,int off,int len)  写入字符数组的某一部分

  (3)void  write(int c)  写入单个字符

  (4)void  write(String str)  写入字符串

  (5)void   write(String str,int off,int len)  写入字符串的某一部分

  2.5 FileWriter类

  (1)FileWriter(File file) 根据给定的File对象构造一个FileWriter对象

  (2)FileWriter(File file,boolean append)  根据给定的File对象构造一个FileWriter对象

  (3)FileWriter(String fileName)  根据给定的文件名构造一个FileWriter对象

  (4)FileWriter(String fileName,boolean append)  根据给定的文件名以及指示是否附加写入数据的boolean值来构造FileWriter对象

  2.6 flush()和close()区别

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

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

    

  

[Day23]IO(字节流、字符流)的更多相关文章

  1. -1-4 java io java流 常用流 分类 File类 文件 字节流 字符流 缓冲流 内存操作流 合并序列流

      File类 •文件和目录路径名的抽象表示形式 构造方法 •public File(String pathname) •public File(String parent,Stringchild) ...

  2. IO流(字节流,字符流,缓冲流)

    一:IO流的分类(组织架构) 根据处理数据类型的不同分为:字节流和字符流 根据数据流向不同分为:输入流和输出流   这么庞大的体系里面,常用的就那么几个,我们把它们抽取出来,如下图:   二:字符字节 ...

  3. IO之字符流

    什么是字符流 对于文本文件(.txt .java .c .cpp) 使用字符流处理 注意点 读入的文件一定要存在 否则就会报FileNotFoundException 异常的处理 为了保证流资源 一定 ...

  4. Java IO: 其他字符流(下)

    作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) 本小节会简要概括Java IO中的PushbackReader,LineNumberReader,St ...

  5. IO 复习字节流字符流拷贝文件

    /* 本地文件 URL 文件拷贝 *//*文本文件拷贝 可以通过 字符流,也可以通过字节流*/ /*二进制文件拷贝 只可以通过字节流*//* 希望这个例子能帮助搞懂 字符流与字节流的区别 */ imp ...

  6. Java之IO流(字节流,字符流)

    IO流和Properties IO流 IO流是指计算机与外部世界或者一个程序与计算机的其余部分的之间的接口.它对于任何计算机系统都非常关键, 因而所有 I/O 的主体实际上是内置在操作系统中的.单独的 ...

  7. Java IO编程——字符流与字节流

    在java.io包里面File类是唯一 一个与文件本身有关的程序处理类,但是File只能够操作文件本身而不能够操作文件的内容,或者说在实际的开发之中IO操作的核心意义在于:输入与输出操作.而对于程序而 ...

  8. IO—》字节流&字符流

    字节流 一.字节输出流OutputStream OutputStream此抽象类,是表示输出字节流的所有类的超类.操作的数据都是字节,定义了输出字节流的基本共性功能方法. FileOutputStre ...

  9. 【C#IO 操作】stream 字节流|字符流 |比特流

    stream的简介 Stream 所有流的抽象基类. 流是字节序列的抽象,例如文件.输入/输出设备.进程中通信管道或 TCP/IP 套接字. Stream类及其派生类提供这些不同类型的输入和输出的一般 ...

  10. java IO之 字符流 (字符流 = 字节流 + 编码表) 装饰器模式

    字符流 计算机并不区分二进制文件与文本文件.所有的文件都是以二进制形式来存储的,因此, 从本质上说,所有的文件都是二进制文件.所以字符流是建立在字节流之上的,它能够提供字符 层次的编码和解码.列如,在 ...

随机推荐

  1. 基于redis的cas集群配置

    1.cas ticket统一存储 做cas集群首先需要将ticket拿出来,做统一存储,以便每个节点访问到的数据一致.官方提供基于memcached的方案,由于项目需要,需要做计入redis,根据官方 ...

  2. Linux 一 些常用的命令

    查看当前系统JAVA的安装路径: echo $JAVA_HOME: 查看内核版本: uname -a ubuntu的防火墙 关闭:ufw disable开启:ufw enable 卸载了 iptabl ...

  3. 第一章 Bootstrap简介

    一.Bootstrap简介 Bootstrap是基于 HTML.CSS.JAVASCRIPT 的前端框架,它简洁灵活,使得 Web 开发更加快捷.它由Twitter的设计师Mark Otto和Jaco ...

  4. OpenCV掩模mask的原理和作用

    一.什么是掩模mask OpenCV中很多函数都带有一个mask参数,mask被称为掩模.图像掩模一般用来对处理的图像(全部或者局部)进行遮挡,来控制图像处理的区域或处理过程. 二.掩模原理 掩模一般 ...

  5. Machine Schedule poj1325

    Machine Schedule Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 17454   Accepted: 7327 ...

  6. docker简单介绍----镜像和容器管理

    docker可以分为三部分:docker镜像   docker仓库  docker容器 docker镜像:一个image可以包含一个镜像,也可以理解为一个系统模板,里面安装了相关应用,也可以是纯净版的 ...

  7. robot总结

    1 搭建环境地址 http://www.cnblogs.com/yufeihlf/p/5945102.html 2 页面描述 https://www.cnblogs.com/yufeihlf/p/59 ...

  8. 计算机基础 & python基础

    五大组成部分 控制器 运算器(数学运算+逻辑运算) 存储器(存取数据) 输入设备(键盘.鼠标等) 输出设备(显示器.打印机等) CPU CPU=运算器+控制器 CPU的分类: 精简指令集(RISC): ...

  9. docker 部署mvc项目 <四>

    一:部署方式 直接使用centos镜像,做一个镜像,此镜像制定端口号,在centos容器中安装jexus独立版,就可以了 docker run -d -p : -itd --name wds cent ...

  10. Swift GCD的使用1

    typealias Task = (cancel : Bool) -> () func delay(time : NSTimeInterval, task : () -> ()) -> ...