一、流概念(stream)

File类并不能对文件内容进行读写。

读文件就是指:把文件的内中的数据读取到内存中来

写文件就是指:把内存中的数据写入到文件中去。

通过什么读写文件呢?文件流。

1.1、流概念

一连串流动的字符

1.2、流的特性

先进先出的方式传递信息

一个字节序列

具有方向性:输入流、输出流

二、按照流向划分

输入流:读取数据--InputStream和Reader作为基类

输出流:写入数据--OutputStream和Writer作为基类

一共四个4基类。

其中InputStream和outputSream是字节流

其中ReaderWriter是字符流

三、按照处理数据单元划分

字节流:字节输入流、字节输出流

字符流:字符输入流、字符输出流

四、流的基类

其中InputStream和outputSream是字节流:1个字节为传输数据

其中ReaderWriter是字符流:16位Unicode字符为传输数据

4个类都是抽象类不能实例化,需要通4个抽象类提供的方法来实现

五、InputStream体系结构

5.1、字节输入流的基类

FileInputStream:是从文件中读取数据

StringBufferInputStream:把字符串轮换为输入流,这个类已经废弃,取而代之的是StringBufferReader

PipedInputStream:连接一个PipedOutputStream它是管道输入流

ByteArrayInputStream:所字节数组轮换为输入流.

FilerInputStream:是个装饰类,也叫过滤器,它具有扩展其他输入流的功能,它还有实现的子类

5.2、java.io.InputStream包

六、OutputStream体系结构

6.1、字节输出流基类

与上方的InputStream基本相对应

6.2、java.io.OutputStream包

七、Reader流

7.1、体系结构

7.2、常用方法

八、Writer流

8.1、体系结构

8.2、常用方法

九、使用流的步骤

打开流-使用流-关闭流

Java从零开始学三十三四(JAVA IO-流简述)的更多相关文章

  1. Java从零开始学三十六(JAVA IO- 字符流)

    一.字符流 BufferedReader:BufferedReader是从缓冲区之中读取内容,所有的输入的字节数据都将放在缓冲区之中 BufferedWriter:把一批数据写入到缓冲区,当缓冲区区的 ...

  2. Java从零开始学三十三(JAVA IO- File类)

    一.简述 在整个io包中,唯一表示与文件本身有关的类就是File类.使用File类可以进行创建或删除文件等常用操作.要想使用File类,则首先要观察File类的构造方法,此类的常用构造方法如下所示: ...

  3. Java从零开始学三十八(JAVA IO- 重定向IO)

    一.三个静态变量 java.lang.System提供了三个静态变量 System.in(默认键盘) System.out(默认显示器) System.err 二.重写向方法 System提供了三个重 ...

  4. Java从零开始学三十五(JAVA IO- 字节流)

    一.字节流 FileOutputStream是OutputStream 的直接子类 FileInputStream也是InputStream的直接子类 二.文本文件的读写 2.1.字节输入流 Test ...

  5. Java从零开始学三十九(对象序列化)

    一.序列化 将对象的状态存储到特定存储介质中的过程 对象序列化,就是把一个对象变为二进制的数据流的一种方法,通过对象序列化可以方便的实现对象的传输或存储.   序列化保存对象的“全景图”,构建对象的“ ...

  6. Java从零开始学三十七(JAVA IO- 二进制文件读写)

    一.简述 二.使用步骤 DataInputStream: 引入相关的类 构造数据输入流的对象(如:FileInputStream,BufferedWriter包装后读取文件等) 读取二进制文件的数据 ...

  7. Java从零开始学三十二(正则表达式)

    一.为什么要有正则 正则表达式可以方便的对数据进行匹配,可以执行更加复杂的字符串验证.拆份.替换功能. 例如:现在要求判断一个字符串是否由数字组成,则可以有以下的两种做法: 不使用正则完成 使用正则完 ...

  8. Java从零开始学三十一(DATE和Calendar类)

    一.Date类 Date类是一个相对较为简单的操作类,在使用中直接使用java.util.Date类的构造方法并进行输出就可以得到一个完整的日期 二.Calendar类 Calendar类可以将取得的 ...

  9. Java从零开始学三十(String和StringBuffer类)

    一.StringBuffer连接字符操作 当一个字符串的内容需要被经常改变时就要使用StringBuffer 在StringBuffer中使用append()方法,完成字符串的连接操作   二.Str ...

随机推荐

  1. Codeforces Round 486C - Palindrome Transformation 贪心

    C. Palindrome Transformation time limit per test 1 second memory limit per test 256 megabytes input ...

  2. 如何设置VMware中Linux命令行环境全屏

    在VMware安装Linux后默认屏幕为640×480,如需修改,则请参考以下步骤.以下以CentOS 6.6安装于VMware Workstation 9中为例说明. 1.默认640x480x16, ...

  3. Oracle DBA学习篇之SQL_TRACE

    SQL_TRACE ; ; set serveroutput on; alter session set sql_trace=true; select count(*) from firefox; a ...

  4. 仿querySeletor 兼容IE 67

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. php curl伪造referer

    CURL方式: SOCKET方式: file_get_contents方法: 通过上面的代码,我们就把referer地址伪装为http://www.xxxx.com,你可以写一段代码: $_SERVE ...

  6. 云计算大会有感—MapReduce和UDF

    (转载请注明出处:http://blog.csdn.net/buptgshengod) 1.參会有感       首先还是非常感谢CSDN能给我票,让我有机会參加这次中国云计算峰会.感觉不写点什么对不 ...

  7. BTSync FREE vs BTSync PRO

    Although both BitTorrent Sync 2.0 FREE and PRO ensure high file transfer speed and ultimate security ...

  8. Win7 开启显示快速启动工具栏,发送到快速启动右键菜单

    开启Win7快速启动栏 许多网友一定记得在 Windows 7 之前的 Windows 系统都有个快速启动(quick launch)区域. 比如 IE 浏览器.Windows Media Playe ...

  9. Android Tasker应用之自动查询并显示话费流量套餐信息

    Android Tasker应用之自动查询并显示话费流量套餐信息 虽然Android平台有非常多的流量监控软件,但最准确的流量数据还是掌握在运营商手里.有些朋友可能像我一样时不时地发短信查询流量信息, ...

  10. __attribute__ ((attribute-list))

    http://blog.csdn.net/ithomer/article/details/6566739 构造与析构: #include <stdio.h> #include <st ...