• IO基础


    一:IO流整体说明?

    用的是装饰模式,装饰模式有四个角色,分别是通用接口、本原、抽象装饰、具体装饰,因为是将本原聚合到了装饰中,所以可以将本原或装饰通过构造子注入到另一个装饰,多个装饰可以随意的组合,形成一个综合的功能对象。

    io流分为输入流及输出流,输入流是文件到内存,输出流是内存到文件。

    流分为低层流及高层流,在实例化高层流时必须通过构造子将低层流注入到高层流中。输入流通用的方法是read(),read(char[]),read(byte[]),readline

    输出流的通用方法是write(int),write(byte[]),write[char[]],print("string")

    当读取一个文件时,对于以字节/字节数组,字符/字符数组读取的结束条件是!=-1,对于以字符串读取的结束条件是!=null

    对于有缓存的输出时,要想写入到文件必须flushclose

    二:输入字节流的体系结构?

    输入字节流的体系结构:

    InputStream

    FileInputStream FilterInputStream

    ObjectInputStream DataInputStream BufferedInputStream

    实现代码:

    --读一个字节

    int temp=fis.read();

    while(temp!=-1)

    {

    System.out.print(temp);

    temp=fis.read();

    }

    --读一批字节

    byte[] bytes=new byte[1000];

    int result=fis.read(bytes);

    while(result!=-1)

    {

    String temp=new String(bytes,0,result);

    result=fis.read(bytes);

    }

    三:输出的字节流体系结构?

    输出的字节流的体系结构:

    OutputStream

    FileOutputStream FilterOutputStreame

    ObjectOutputStream BufferedOutputStream DataOutputStream  

    PrintStream

    实现代码:

    int temp;

    fis.write(temp);

    byte temps[]=new byte[1000];

    fos.write(temps);

    四:输入的字符流体系结构?

    输入的字符流的体系结构:

    Reader

    FileReader InputStreamReader(将字节流转化字符流)

    BufferedReader(有缓存)

    实现代码:

    BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

    String temp=br.readLine();

    while(temp!=null)

    {

    temp=br.readLine();

    }

    五:输出的字符流体系结构?

    输出的字符流的体系结构:

    Writer

    FileWriter OutputStreamWriter

    BufferedWriter PrintWriter

    实现代码:

    fw.write(int)

    fw.write(char[])

    fw.write("string");

    六:PrintStreamBufferedWriterPrintWriter的比较?

    PrintStream:属于字节流,即可以打印字节也可以打印数组

    写入文件不用closeflush

    e.printStackTrace()System.out.println()都是它的实例。

    BufferedWriterPrintWriter:属于字符流,只可以打印字符或字符串

    因为有缓存,要想写入文件必须closeflush

  • 相关阅读:
    软件架构入门
    深入理解JSCore
    原生开发小程序 和 wepy 、 mpvue, Taro 对比
    安装淘宝npm(cnpm)
    CSS预处理器—Sass、LESS和Stylus
    PHP和java比较
    DevOps 在公司项目中的实践落地
    Facebook的React Native之所以能打败谷歌的原因有7个(ReactNative vs Flutter)
    Android 9.0新特性
    主流前端框架对比:Vue.js , React, Angular.js
  • 原文地址:https://www.cnblogs.com/chenxuezhouLearnProgram/p/5693475.html
Copyright © 2020-2023  润新知