zoukankan      html  css  js  c++  java
  • IO流常用基类

    1.为什么我们需要IO?

    IO流主要是处理应用程序之外的数据交互 ;Input 输入 Output输出

    2.IO流的分类

    根据数据流向分类:输入流(读入数据) 与 输出流(写出数据)

    即输入流 inputStream/Reader 与输出流 outputStream/Writer

    根据数据类型分类:字节流与字符流

    即字节输入流/输出流 inputStream/outputStream

      字符流:Reader/Writer

      在Java IO技术中,数据可以保存到文本文件,二进制文件以及压缩文件中,Java中的字符是Unicode编码,是双字节的,inputstream是处理字节的,

    在处理字符文本时不是很方便,Java为字符文本的输入提供了专门的一套单独的类reader,但reader类并不是inputstream类的替换者,只是在处理字符串时简化了编程。

    转换流的作用是将字节流转换为字符流,字符流就是处理文本的,java针对转换提供了两个API:InputStreamReader 与OutputStreamWriter。

    3.NIO NO-NEW INPUT OUTPUT

    传统IO存在如下几个问题:

    1.线程资源受限:线程是操作系统中非常宝贵的资源,同一时刻有大量的线程处于阻塞状态是非常严重的资源浪费,操作系统耗不起
    2.线程切换效率低下:单机cpu核数固定,线程爆炸之后操作系统频繁进行线程切换,应用性能急剧下降。
    3.除了以上两个问题,IO编程中,我们看到数据读写是以字节流为单位,效率不高。

    jdk4就出现了NIO,其是面向块(缓冲区)来处理数据的

    NIO主要用在架构方面处理高并发高性能方面的应用,是以缓存、选择器+channel 通道的方式,新IO是不阻塞的,可以使用多线程进行处理,使用事件驱动。

  • 相关阅读:
    基于MFCC的语音数据特征提取概述
    Keras保存模型并载入模型继续训练
    论文翻译:Audio Bit Depth Super-Resolution with Neural Networks
    自编码器
    深度学习中的激活函数
    稀疏
    librosa语音信号处理
    Batch Normalization、Layer Normalization、Instance Normalization、Group Normalization、Switchable Normalization比较
    json解析模块
    matlab中的colormap
  • 原文地址:https://www.cnblogs.com/sunshine2017/p/7523874.html
Copyright © 2011-2022 走看看