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. 提高看log效率的小工具

    文本型的log,比如Android的log,都是普通文本.在大家连续奋战的时候,难免看起来容易眼花. 这时候如何提高效率?我们给它搞个高亮好不好? 这就是我们要介绍的看log工具:TextAnalys ...

  2. 哥伦比亚大学 Columbia University Image Library (COIL-20) 数据集

    转自:http://blog.csdn.net/garfielder007/article/details/51480820,这个人博客里面有不错的 数据集,http://blog.csdn.net/ ...

  3. FireMonkey Premium Style Pack 2 for RAD Studio XE4

    FireMonkey Premium Style Pack 2 for RAD Studio XE4 http://cc.embarcadero.com/item/29483 http://www.e ...

  4. Epoll 实例

    服务端调试: [test@cs2 epoll]$ g++ epoll_server.cpp -o epoll_server -lpthread [test@cs2 epoll]$ ./epoll_se ...

  5. vc++6 Platform SDK February 2003

    vc++6.0 sp6 ftp://ejiasoft:softejia@ejia2.tust.edu.cn/else/VC++.6.0.with.SP6.ISO MSDN http://ftp.sds ...

  6. boost 部分编译

    完整编译boost库需要很长时间,而且我们不一定会用到所有的库. 那么如何只编译只需要的库呢? 解压boost源码,进入解压后的目录 ./bootstrap.sh生成bjam ./bjam --bui ...

  7. Jquery3.x高版本支持IE8

    最近在做项目的时候,遇到一个安全漏洞的问题 检测到目标站点存在javascript框架库漏洞 解决办法是 将受影响的javascript框架库升级到最新版本. 好吧,就给你升吧,升完之后,我的天啊,尽 ...

  8. Redis、Memcache和MongoDB

    一.Memcached Memcached的优点:Memcached可以利用多核优势,单实例吞吐量极高,可以达到几十万QPS(取决于key.value的字节大小以及服务器硬件性能,日常环境中QPS高峰 ...

  9. 在android开发中添加外挂字体

    1.在项目目录中,右键app——New——Folder—— Assets Folder 2.把.ttf或者.oft文件拷进这个assets文件夹 3.在onCreate()中 Typeface typ ...

  10. python基础篇之进阶

    python基础篇之进阶 参考博客:http://www.cnblogs.com/wupeiqi/articles/5115190.html python种类 1. cpython  使用c解释器生产 ...