zoukankan      html  css  js  c++  java
  • 我的学习之路_第十章_IO流

    IO流

    I: input 输入,读取到内存
    O: Output 输出,写入文件
    流: 数据流(字符,字节)

    输入: 字节输入流(FileInputStream),字符输入流(FileReader)
    输出: 字节输出流(FileOutputStream),字符输出流(FileWriter)


    【字节流】

    OutputStream:字节输入流,是所有字节输入流ed父类

    所属包:java.io包中


    ★:公共的成员方法:

    abstract 返回值:void write(int b) 写入一个字节
    返回值:void write(vyte[] b) 写入一个字节数组 写入数据的时候,如果是整数,会查询ADCLL表,
    如果是第一个是负数,第二个字节可以使正数,也可以使负数,查询的时候会把连个字节组成一个字节.
    快速写入字节数组的方法:String类中有一个方法 返回值:byte[] getBytes(String charseName) 把字符串转换为字节数组
    返回值:void write(byte[] b,int off, int len) 写入字节数组,off是开始索引,len写几个
    返回值:void close() 关闭此输出流并释放与此流有关的所有系统资源.


    【FileOutputStream】文件字节输出流
    作用:把内存中的数据,以字节的方式,写入到文件中.

    构造方法:
    FileOutputStream(File file) 创建一个向指定File对象表示的文件中写入数据的文件输出流
    FilePutputStream(String name) 创建一个向具体指定名称的文件中写入数据的输出文件流

    构造方法的参数: file:文件 name:文件的路径 都是写入数据的目的地

    特点:如果构造方法中指定的文件或者文件的路径所指向的文件不存在,构造方法就会创建一个文件,
    如果没有打开追加写的开关,文件已经存在,则会覆盖.

    使用步骤:
    1:创建一个字节输出流对象FileOutputStream,绑定数据的目的地
    2:使用FileOutoutStream中的write方法,把数据写入到文件中.
    3:释放资源.

    流写入数据的时候,会找到JVM,JVM会调用系统本地哦的方法完成写,使用完 流要关闭和系统有关的资源(释放内存).


    文件的续写和换行:

    追加写:使用两个参数的构造方法
    FileOutputStream(File file, boolean append)
    FileOutputStream(String name, boolean append)
    参数:
    File file,String name:写入数据的目的地
    boolean append:追加写的开关,true:可以追加写(往之前的文件,继续写内容),fasle:不能追加写(覆盖之前的文件)


    换行:要输入通用的换行符号

    fos.write(System.getProperty("line.separator").getBytes());


    【InputStream】字节输入流,是所有字节输入流的父类


    成员方法:
    返回值:int read():读取一个字节并返回,没有字节返回-1
    返回值:int read(byte[]): 读取一定量的字节数,并存储到字节数组中,返回读取到的字节数
    byte数组的作用:起到缓冲作用,一次可以往数组中缓冲多个字节,可以提高读取效率.
    返回的int是每次读取的有效字节个数.

    返回值:void close(): 关闭此文件输入流并释放与此流有关的所有系统资源


    ★ FileInputStream 文件字节输入流

    作用:把文件中的数据,以字节的方式读取到内存中

    构造方法:
    FileInputStream(String name)
    FileInputStream(File file)

    参数:读取的哪个文件(数据源)

    String name:字符串的文件路径
    File file:读取的文件

    使用步骤:
    1.创建字节输入流对象FileInputStream,并且绑定数据源
    2.使用FileInputStream对象中的方法read,读取文件
    3.释放资源


    【BufferedOutputStream】 字节缓冲输出流 extends OutputStream

    字节缓冲输入流作用:给基本流早呢更加一个缓冲区,提高基本流的效率

    继承了父类的公用的成员方法

    构造方法:

    BufferedOutputStream(OutputStream out) 创建一个新的缓冲输出流,以将数据写入指定的底层输入流
    参数:
    OutputStream out: 字节输出流,可以使用FileOutputStream
    参数传递时哪个字节输出流,就会给哪个字节输出流增加一个缓冲区,提高这个流的效率.

    使用步骤:

    1:创建FileOutputStream对象,绑定数据目的地
    2:创建BufferedOutputStream对象,构造方法中传递FileOutputStream,提高FileOutputSteam效率
    3:使用BufferedOutputStream中的方法,write,把数据写入缓冲区中
    4:使用BufferedOutputStream中的flush,把缓冲区中的数据,刷新到文件中.(这里一定要刷新)
    5:释放资源

    【BufferedInputStream】字节缓冲输入流 extends InputStream
    作用:给基本字节输入流增加一个缓冲区,提高基本字节输入流的效率

    继承自父类的公共的成员方法

    构造方法:
    BufferedInputStream(InputStream in) 创建一个BufferedInputStream 并保存期参数,即输入流 in,以便将来使用.
    参数:
    InputStream in: 字节输入流,可以传递FileInputStream
    参数传递的是哪个字节输入流对象,就会给哪个字节输入流对象增加一个缓冲区,提高该流的效率.

    使用步骤:
    1:创建FileInputStream对象,绑定数据源
    2:创建BufferedInputStream对象,构造方法中传入FileInputStream,提高FileInputStream的读取效率.
    3:使用BufferedInputStream中的方法 read,读取文件
    4:释放资源

    ★ 总结:
    字节流:操作的文件是非文本文件
    字符流:操作的文件都是文本文件,一次读取一个字符,可以读取中文
    文本文件:使用记事本打开,人能看懂的文件.

  • 相关阅读:
    「Kafka」Kafka中offset偏移量提交
    「Flink」Flink中的时间类型
    Hash存储模型、B-Tree存储模型、LSM存储模型介绍
    「Flink」RocksDB介绍以及Flink对RocksDB的支持
    「Flink」理解流式处理重要概念
    「Flink」Flink 1.9 WebUI运行作业界面分析
    「Spark」Spark SQL Thrift Server运行方式
    「Flink」配置使用Flink调试WebUI
    Django基础篇之简介和项目创建
    在python文件中操作django orm提示环境变量设置问题
  • 原文地址:https://www.cnblogs.com/jia-/p/7020070.html
Copyright © 2011-2022 走看看