理解Java的IO流

流(Stream)的概念:程序与数据来源之间的桥梁

流的分类

按流的方向来分(从程序所在的内存的角度来看):

  •   输入流:把外部输入读入当前程序所在内。
  •   输出流:把当前程序所在内存的数据输出到外部

按流处理得数据来分:

  •    字节流:它处理数据单元是字节(8bit),适应性广、功能强大。
  •    字符流:它处理的数据单元是字符。通常来说它主要处理文本文件,   它在处理文本文件时,比字节流更方便。

字节流和字符流的区别:

读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节。

处理对象不同:字节流能处理所有类型的数据(如图片、avi等),而字符流只能处理字符类型的数据。

结论:只要是处理纯文本数据,就优先考虑使用字符流。 除此之外都使用字节流。

按流的角色来分:

  •   节点流:直接和一个IO的物理节点(磁盘上的文件、网络)关联。
  •   包装流(处理流):以节点为基础,包装之后得到的流。都继承FilterXxx等基类。

IO体系

Java传统IO的基本体系:

      字节输入流                   字节输出流                   字符输入流          字符输出流

      InputSteam                OutputStream                 Reader              Writer

访问文件  FileXxx

访问数组  ByteArrayXxx              CharArrayXxx

访问管道  PipedXxx

访问字符串  StringXxx

过滤流     FileterInputStream      FileterOutputStream     FileterReader      FilterWriter

缓冲流     BufferedXxx

打印流               PrintStream                 PrintWriter

转换流                          InputStreamReader    OutputStreamWriter

特殊流  DataInputStream         DataOutputStream

对象流  ObjectInputStream      ObjectOutputStream

Java基础知识总结之IO流的更多相关文章

  1. Java基础知识回顾之六 ----- IO流

    前言 在上一篇文章中,回顾了Java的多线程.而在本篇文章中主要介绍Java IO的相关知识. IO的介绍 什么是IO? IO的名称又来是Input与Output的缩写,也就是输入流和输出流.输入流用 ...

  2. Java基础知识强化之IO流笔记71:NIO之 NIO的(New IO流)介绍

    1. I/O 简介 I/O ( 输入/输出  ):指的是计算机与外部世界或者一个程序与计算机的其余部分的之间的接口.它对于任何计算机系统都非常关键,因而所有 I/O 的主体实际上是内置在操作系统中的. ...

  3. Java基础知识强化之IO流笔记68:Properties和IO流集合使用

    1. Properties和IO流集合使用 这里的集合必须是Properties集合:  public void load(Reader reader):把文件中的数据读取到集合中  public v ...

  4. Java基础知识强化之IO流笔记66:Properties的概述 和 使用(作为Map集合使用)

    1. Properties的概述  Properties:属性集合类.是一个可以和IO流相结合使用的集合类. 该类主要用于读取以项目的配置文件(以.properties结尾的文件 和 xml文件). ...

  5. Java基础知识强化之IO流笔记22:FileInputStream / FileOutputStream 复制文本文件案例1

    1. 使用字节流FileInputStream / FileOutputStream 复制文本文件案例: 分析: (1)数据源:从哪里来 a.txt   --   读取数据  --  FileInpu ...

  6. Java基础知识强化之IO流笔记17:FileOutputStream构造方法使用

    1. 可以参照之前写的笔记:   Android(java)学习笔记167:Java中操作文件的类介绍(File + IO流) 2. FileOutputStream(常用的)构造方法: FileOu ...

  7. Java基础知识强化之IO流笔记16:IO流的概述和分类

    1. IO流的分类   流向:     (1)输入流:读取数据到内存     (2)输出流:写入数据到硬盘(磁盘)   操作的数据类型:    (1)字节流:操作的数据是字节             ...

  8. Java基础知识强化之IO流笔记01:异常的概述和分类

     IO流操作的时候会出现很多问题,java中叫作异常,所以我们先介绍一下异常: 1. 程序的异常:Throwable(Throwable类是java中所有异常或错误的超类) (1)严重问题:Error ...

  9. Java基础知识强化之IO流笔记42:IO流总结(图解)

    1. IO流总结(图解)

随机推荐

  1. 深入浅出Node.js(一):什么是Node.js(转贴)

    以下内容转自:http://www.infoq.com/cn/articles/what-is-nodejs/ 作者:崔康 [编者按]:Node.js从2009年诞生至今,已经发展了两年有余,其成长的 ...

  2. MongoDB Java Driver 3.4操作

    导入jar包 <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-dr ...

  3. python中从文件中读取数据

    # average5.py def main(): fileName = input("What file are the numbers in?") infile = open( ...

  4. 最简单的代码,CURL获取页面

    function getHTML($url){ $ch = curl_init(); //1.初始化curl curl_setopt($ch,CURLOPT_URL, $url); //2.curl配 ...

  5. ssm框架整合+maven项目创建

    在引入外部maven插件后就可以创建一个maven项目了,这篇文章主要介绍ssm框架的整合和如何创建一个maven项目 1.在开发工具的项目空白区单击右键,依次选择New.Other,会出现如下界面, ...

  6. SpringMVC构建Restful。

    因为spring是依赖jackson来生成json,需要添加jar包. pom.xml文件添加依赖. <dependency> <groupId>org.codehaus.ja ...

  7. Oracle 12C 新特性之非分区表转分区表online clause(不停业务+索引有效)

    12c以前非分区表需要转换为分区, 如果不停业务的话可以使用在线重定义,只有在表进行切换的时候会有短暂的锁表. 12c 中alter table online clause 实现了表上现有的索引有效, ...

  8. Listener与Filter

    一.监听器Listener javaEE的13们规范中 包括servlet技术和jsp技术 servlet规范中包括三门技术:(servlet的三大组件) servelt技术  Listener技术 ...

  9. 每天一道Java题[5]

    题目 String.StringBuilder.StringBuffer有什么异同? 解答 相同点:String.StringBuilder.StringBuffer都可以用来存储字符串. 不同点: ...

  10. js导出CSV

    <html> <head> <meta http-equiv="content-type" content="text/html; char ...