流:

  分为输入流和输出流,输入/输出是相对计算机内存来说的,数据输入到内存是输入流,数据从内存中输出是输出流。

  流对象构造的时候会和数据源联系起来。

  数据源分为:源数据源和目标数据源。输入流联系的是源数据源,输出流联系的是目标数据源。

  按流向划分:

  输入流:InputStream和Read

  输出流:OutputStream和Write

输入流和输出流又分为字节流和字符流:

  按处理数据单元划分:

  字节流:InputStream和OutputStream。字节流是8位的通用字节流,基本单位是字节。

        ---子类FileInputStream和FileOutputStream。文件输入/输出流。

  字符流:Read和Write。字符流是16位的Unicode字符流,基本单位是Unicode字符。适合处理字符串和文本。

        ---子类FileReader和FileWrite。文件输入/输出流。

  缓冲流:BufferedReader和BufferedWrite.也是Read和Write的子类。

    缓冲流主要作用:提高输入输出的效率。

    原理;
       1,使用流的read方法从源中读取一批数据存储到缓冲区的数组中。
       2,通过计数器记录住存储的元素个数。
       3,通过数组的角标来获取数组中的元素(从缓冲区中取数据).
       4,指针会不断的自增,当增到数组长度,会归0.计数器会自减,当减到0时,就在从源拿一批数据进缓冲区。

package cn.itcast.p2.io.filewriter;

import java.io.FileWriter;
import java.io.IOException; //字符输出流
//需求:将一些文字存储到硬盘一个文件中。 public class FileWriterDemo {
//平台独立的换行符。
private static final String LINE_SEPARATOR = System.getProperty("line.separator"); public static void main(String[] args) throws IOException { //创建一个可以往文件中写入字符数据的字符输出流对象。
/*
* 既然是往一个文件中写入文字数据,那么在创建对象时,就必须明确该文件(用于存储数据的目的地)。
*
* 如果文件不存在,则会自动创建。
* 如果文件存在,则会被覆盖。
*
* 如果构造函数中加入true,可以实现对文件进行续写!
*/
FileWriter fw = new FileWriter("demo.txt",true); /*
* 调用Writer对象中的write(string)方法,写入数据。
*
* 其实数据写入到临时存储缓冲区中。
*
*/
fw.write("abcde"+LINE_SEPARATOR+"hahaha");
// fw.write("xixi"); /*
* 进行刷新,将数据直接写到目的地中。
*/ // fw.flush(); /*
* 关闭流,关闭资源。在关闭前会先调用flush刷新缓冲中的数据到目的地。
*/
fw.close(); // fw.write("haha");// java.io.IOException: Stream closed } }

未完,待补充。。。

最新文章

  1. PAT (Basic Level) Practise:1031. 查验身份证
  2. Oracle数据分页,并传出数据集
  3. 虚拟机安装Linux系统图文教程
  4. sass mapsource --->gulp
  5. 【转】搭建Mac OS X下cocos2d-x的Android开发环境
  6. Day4_代码重用与函数
  7. Android 平台 HTTP网速測试 案例 API 分析
  8. python感悟
  9. 爬虫利器 Puppeteer 实战
  10. Golang的interface实践
  11. dubbo+zipkin调用链监控(二)
  12. 再谈:自定义结构体的对齐问题之__attribute__ ((packed))方法【转】
  13. 一个不错的nomad raw_exec && docker 运行例子(集成访问网关)
  14. const V.S readonly
  15. SQL 基础命令和函数
  16. [转] Linux History(历史)命令用法 15 例
  17. Python使用浏览器模拟访问页面之使用ip代理
  18. Linux - 用户管理常用命令
  19. 永远也记不住的linux环境变量,库文件,头文件,交叉编译...
  20. clean-css 安装 使用

热门文章

  1. SpringMVC 接收表单数据的方式
  2. Vulkan Tutorial 01 开发环境搭建之Windows
  3. Init & Deinit & ARC
  4. Spring总结一:Srping快速入门
  5. c语言学习笔记 if语句执行流程和关系运算符
  6. sklearn scoring . xgboost.train . ---> rsme
  7. 264E Roadside Trees
  8. 498B Name That Tune
  9. ShopNc登录
  10. Mysql CURD复习(数据库、表、数据)