1、导读

对于设备之间的流动(即写入数据或读出数据),Java专门用Java.io包进行操作。这些数据的流动便是我们所说的数据的输入输出流(IO流)。

2、数据流的处理:字节流和字符流

数据的基本单位是字节(Byte),所以数据流中对数据的操作一般以字节来处理,这种对数据以字节的处理方式称为字节流,字节流的处理方式即将数据按照字节存储,然后对字节进行输入或输出操作,以实现对数据的读写操作。

但文本数据(即文字),不能单单用字节存储就可以,文字都需要对应的编码来识别,但不同的文字使用的编码又不尽相同,如英语用ASCII码、中文用GBK码、国际统一文字编码Unicode,这样一来一旦使用的是字节流处理文本数据,就会发生编码异常问题,即假设我们用字节流处理中文,存储的时候是字节,但当我们使用的时候编码方式不是GBK,就会出现文字乱码现象,所以java有提供了另一种文本数据处理方式:字符流。

字符流即处理文本数据时以字符的方式处理,并带有编码方式,这样存储的文字就不容易发生乱码现象。

3、IO流体系

根据数据的流向:输入和输出.(读或写)、数据的处理方式:字节流和字符流,可以将IO流划分为4大体系(即IO流的4个抽象基类):

注:这四个类都是抽象类,其中InputStream类和Reader类是输入向,而OutputStream类Writer类是输出向。另外这4个类的子类都已父类的名字作为后缀来命名:如FileInputStream类一看就是InputStream类的子类,而FileReader类一看就是Reader的子类。

IO(Input&Output)流の介绍的更多相关文章

  1. JAVA input/output 流层次关系图

    在java中,input和output流种类繁多,那么它们之间是否有关系呢?答案是肯定的,其中使用到了设计模式,装饰模式 下图来自于HEAD FIRST 设计模式 装饰模式一章 下图来自网络博客:ht ...

  2. JavaIO 流(1)IO流介绍

    IO流定义: 流的本质是一组单向有序,分起始和终止的数据传输过程.需要导入import java.io.* IO流分类: 按数据类型分为:字节流和字符流 字节流: 按字节进行读取(可以处理任意类型数据 ...

  3. Java标准I/O流介绍

    1.I/O是什么? I/O 是Input/Output(输入.输出)的简称,输入流可以理解为向内存输入,输出流是从内存输出. 2.流 流是一个连续的数据流,可以从流中读取数据,也可以往流中写数据.流与 ...

  4. Java IO 文件与流基础

    Java IO 文件与流基础 @author ixenos 摘要:创建文件.文件过滤.流分类.流结构.常见流.文件流.字节数组流(缓冲区) 如何创建一个文件 #当我们调用File类的构造器时,仅仅是在 ...

  5. BIOS(Basic Input/Output System)是基本输入输出系统的简称

    BIOS(Basic Input/Output System)是基本输入输出系统的简称 介绍 操作系统老师说,平时面试学生或者毕业答辩的时候他都会问这个问题,可见这个问题对于计算机专业的学生来说是如此 ...

  6. CentOS 启动提示unexpected inconsistency;RUN fsck MANUALLY, ntfs的input/output Error,InPageError c000009c使用chkdsk修复磁盘,12款Linux系统恢复工具

    CentOS这两天服务器出了问题了,提示如下: unexpected inconsistency;RUN fsck MANUALLY An error occurred during the file ...

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

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

  8. Java(35)IO特殊操作流&Properties集合

    作者:季沐测试笔记 原文地址:https://www.cnblogs.com/testero/p/15228454.html 博客主页:https://www.cnblogs.com/testero ...

  9. PHP-FPM-failed to ptrace(PEEKDATA) pid 123: Input/output error

    If you're running PHP-FPM you can see these kind of errors in your PHP-FPM logs. $ tail -f php-fpm.l ...

随机推荐

  1. python并发编程之协程

    ---恢复内容开始--- 一.join方法 (1)开一个主线程 from threading import Thread,currentThread import time def walk(): p ...

  2. 纳税服务系统【信息发布管理、Ueditor、异步信息交互】

    需求分析 我们现在来到了纳税服务系统的信息发布管理模块,首先我们跟着原型图来进行需求分析把: 一些普通的CRUD,值得一做的就是状态之间的切换了.停用和发布切换. 值得注意的是:在信息内容中,它可以带 ...

  3. [04] Cookie概念和基本使用

    1.Cookie是什么 Cookie,中文名称为"小型文本文件"或"小甜饼",指某些网站为了辨别用户身份而储存在用户本地终端上的数据(通常经过加密). 很多网站 ...

  4. Eclipse插件springsource-tool-suite在线和离线安装步骤

    springsource-tool-suite插件是一个基于Eclipse的开发环境,为开发Spring应用程序而定制.它提供了一个即用的环境来实现,调试,运行和部署Spring应用程序,包括Pivo ...

  5. 在有main函数的前提下 eclipse找不到主类

    有时候在测试类的时候eclipse会莫名奇妙的提示找不到主类   接下来分别有几种解决办法 1.在项目上右击> Builder Path -> Configure Build Path - ...

  6. Unity 3D 之贪吃蛇 Text 心得 & Audio

    当我们需要在游戏街面上增加文本时, 我们就需要用到Text 组件 注意: 当文本的长度或者宽度不够时,字体将无法显示. 因为是面对组件编程,所以每一个组件的component都可以同过GetCompo ...

  7. 搬瓦工修改自带ss密码和端口

    如果是从控制面板那里直接点击安装的ss,只需要修改这两个文件: 修改端口 /root/.kiwivm-shadowsocks-port修改密码 /root/.kiwivm-shadowsocks-pa ...

  8. PyTorch教程之Training a classifier

    我们已经了解了如何定义神经网络,计算损失并对网络的权重进行更新. 接下来的问题就是: 一.What about data? 通常处理图像.文本.音频或视频数据时,可以使用标准的python包将数据加载 ...

  9. 关于 String 自我理解

    String 的一些认识: String对象是不可变,所以使用 final 修饰 字符串拼接,合理利用 StringBuilder(线程非安全),StringBuffer 线程安全 常用方法就不详细介 ...

  10. Java并发/多线程系列——线程安全篇(1)

    创建和启动Java线程 Java线程是个对象,和其他任何的Java对象一样.线程是类的实例java.lang.Thread,或该类的子类的实例.除了对象之外,java线程还可以执行代码. 创建和启动线 ...