IO流概念:

  流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。io流是实现输入和输出的基础,可以方便的实现数据的输入和输出操作。

IO流的分类:

  根据处理数据类型的不同分为:字符流和字节流

    字节流和字符流:

      字节流以字节为单位进行读写,字节流可以处理所有类型的数据(图片、文件等)

      字符流以字符为单位进行读写,字符流只能处理字符类型的数据

  根据数据流向不同分为:输入流和输出流

    输入流和输出流:

      顾名思义输入流就是java程序读取外界文件的流,输出流是java程序往外界文件写入的流

Java IO流常用的流对象:

  字节流对象:

    Reader

    基本字节输入流对象:FileInputStream fis = new FileInputStream(path);

    缓冲区字节输入流对象:BufferedInputStream bis = new BufferedInputStream(new FileInputStream(path));

    Writer

    基本字节输出流对象:FileOutputStream fos = new FileOutputStream(path);

    缓冲区字节输出流对象:BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(path));

  字符流对象:

    Reader

    基本字符输入流对象:InputStreamReader isr = new InputStreamReader(new FileInputStream(path));//转换流,实例化的时候传进去的字节流

    简化字符输入流对象:FileReader fr = new FileReader(path);

    缓冲区字符输入流对象:BufferedReader br = new BufferedReader(new FileReader(path));

    Writer

    基本字符输出流对象:OutputStreamWriter osr = new OutputStreamWriter(new FileOutputStream(path));//转换流,实例化的时候传进去的字节流

    简化字符输出流对象:FileWriter fw = new FileWriter(path);

    缓冲区字符输出流对象:BufferedWriter bw = new BufferedWriter(new FileWriter(path));

字节流和字符流的转换:

  转换流的特点:

    其是字符流和字节流之间的桥梁

    可对读取到的字节数据经过指定编码转换成字符

    可对读取到的字符数据经过指定编码转换成字节

  何时使用转换流?

    当字节和字符之间有转换动作时;

    流操作的数据需要编码或解码时。

  具体的对象体现:

    InputStreamReader:字节到字符的桥梁

    OutputStreamWriter:字符到字节的桥梁

  这两个流对象是字符体系中的成员,它们有转换作用,本身又是字符流,所以在构造的时候需要传入字节流对象进来。

java基础之io流总结一:io流概述的更多相关文章

  1. java基础知识回顾之javaIO类--管道流PipedOutputStream和PipedIutputStream

    管道流(线程通信流):管道流的主要作用是可以进行两个线程间的通讯,分为管道输出流(PipedOutputStream).管道输入流(PipedInputStream),如果想要进行管道输出,则必须要把 ...

  2. Java基础知识二次学习--第八章 流

    第八章 流   时间:2017年4月28日11:03:07~2017年4月28日11:41:54 章节:08章_01节 视频长度:21:15 内容:IO初步 心得: 所有的流在java.io包里面 定 ...

  3. java基础第十五篇之IO流和递归算法

    FileInputStream : 输入流 int available() : 一次读取所有的字节数 read() : 将文件上的字节读取到内存的数组中 FileOutputStream : 输出流 ...

  4. Java基础面试操作题: File IO 文件过滤器FileFilter 练习 把一个文件夹下的.java文件复制到另一个文件夹下的.txt文件

    package com.swift; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File ...

  5. JAVA基础(10)——IO、NIO

    转载:http://blog.csdn.net/weitry/article/details/52964948 JAVA基础系列规划: JAVA基础(1)——基本概念 JAVA基础(2)——数据类型 ...

  6. 黑马程序员:Java基础总结----枚举

    黑马程序员:Java基础总结 枚举   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 枚举 为什么要有枚举 问题:要定义星期几或性别的变量,该怎么定义?假设用1-7分别 ...

  7. 黑马程序员:Java基础总结----反射

    黑马程序员:Java基础总结 反射   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 反射 反射的基石:Class类 Class类代表Java类,它的各个实例对象又分别 ...

  8. 黑马程序员:Java基础总结----正则表达式

    黑马程序员:Java基础总结 正则表达式   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 正则表达式 import  java.util.regex.*; 符合一定规 ...

  9. Java基础系列-equals方法和hashCode方法

    原创文章,转载请标注出处:<Java基础系列-equals方法和hashCode方法> 概述         equals方法和hashCode方法都是有Object类定义的. publi ...

  10. Java基础系列-Comparable和Comparator

    原创文章,转载请标注出处:<Java基础系列-Comparable和Comparator> 一.概述         Java中的排序是由Comparable和Comparator这两个接 ...

随机推荐

  1. R-一页多图

    https://blog.csdn.net/ailsa__/article/details/45932753

  2. [Mvel]Mvel2.0使用指南一 基础

    MVEL在很大程度上受到Java语法的启发,作为一个表达式语言,也有一些根本的区别,旨在更高的效率,例如:直接支持集合.数组和字符串匹配等操作以及正则表达式. MVEL用于执行使用Java语法编写的表 ...

  3. C++ 资源管理 —— RAII

    RAII:在构造函数中申请资源,在析构函数中释放资源. 1. RAII 自动实现锁资源的释放 void bad() { m.lock(); f(); if (COND) return; m.unloc ...

  4. HDU - 5297:Y sequence (迭代&容斥)

    Yellowstar likes integers so much that he listed all positive integers in ascending order,but he hat ...

  5. Javascript的异常捕获机制

    這個異常處理機制,之前也只是,但是沒有怎麼用過,用了一次后發現還可以, 和java,python的異常處理機制也很相似 Javascript的异常捕获机制 1.1 基本的try…catch语句 ES3 ...

  6. LeetCode Replace Words

    原题链接在这里:https://leetcode.com/problems/replace-words/description/ 题目: In English, we have a concept c ...

  7. 【eclipse】 怎么解决java.lang.NoClassDefFoundError错误

    前言 在日常Java开 发中,我们经常碰到java.lang.NoClassDefFoundError这样的错误,需要花费很多时间去找错误的原因,具体是哪个类不见了?类 明明还在,为什么找不到?而且我 ...

  8. 【POJ 3179】 Corral the Cows

    [题目链接] http://poj.org/problem?id=3179 [算法] 首先,我们发现答案是具有单调性的,也就是说,如果边长为C的正方形可以,那么比边长C大的正方形也可以,因此,可以二分 ...

  9. log框架集成

    使用slf4j,slf4j相当于一个接口,我们面对接口编程,方便地集成其他的日志框架,我们按照slf4j的标准,日志就会相应地打入日志系统中(log4j 使用slf4j要有两个包1,他本身的api,2 ...

  10. webstorm设置修改文件后自动编译并刷新浏览器页面

    转载:http://www.cnblogs.com/ssrsblogs/p/6155747.html 重装了 webstorm ,从10升级到了2016 一升不要紧,打开老项目,开启webpakc-d ...