本文特意将各种IO流的类总结到一起,作成图,方便记忆

1.流的写入和读取

2.字符输入流

3.字符输出流

4.字节输入流

5.字节输出流

6.概念杂记

* Buffered;带缓冲区的字符读取流,高效读取。在父类的基础上增加了读取一行数据的功能
* Buffered实例化的对象是Stream
* Writer有flush()方法,必须使用才能写入,OutputStream也有flush(),不过不使用也能写入
* BufferedWriter有newLine()方法-换行
* BufferedReader/LineNumberReader有readLine()方法
* String转为byte[]要用getBytes();String转为char[]用toCharArray();
* new String(b,0,length)
* InputStream,Reader都有read()方法
* OutputStream,Writer都有write()方法
* InputStream需要建立byte[] b = new byte[1024];
* Reader都要建立char[] ch = new char[1024];如果readLine就不用建立了
* 最后的时候input/output关闭谁先谁后没有顺序要求
* 只有File流才能添加文件路径(RandomAccessFile/PrintStream/PrintWriter也可以)
* 字节流读到末尾返回-1,字符流读到末尾返回null
* 如果需要整体读取或写入,建议采用内存流     
* DataInputStream只能用DataOutputStream来写
* ObjectOutputStream写入的对象必须实现serializable接口
* file.length()只能获得文件的大小,不能获得文件夹的大小 
* File.listRoots()返回当前系统所有盘符
* 实现serializable接口最好定义默认的UID
* 将毫秒数转换为日期。

public static String LongToDate(Long ms) {
SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss ");
return format.format(new Date(ms));
}

* System.out = PrintStream
* System.in = InputStream
* ByteArrayOutputStream其中的数据被写入一个 byte 数组(即写到内存中)。缓冲区会随着数据的不断写入而自动增长。可使用 toByteArray() 和 toString() 获取数据。 
* DataInputStream可以读取各种基本数据类型;DataOutputStream可以写入各种基本数据类型,而且DataOutputStream保存到文件的内容只有系统明白,人看不明白;DataInputStream只能用DataOutputStream来写
* RandomAccessFile既能read又能write
* 对文件路径切割使用split("\\\\")
* ObjectOutputStream和dataOutputStream区别:ObjectOutputStream可以将一个实现了序列化的类实例写入到输出流中
* BufferedOutputStream和ByteArrayOutputStream区别:
    * BufferedOutputStream 的优势主要是针对不用缓冲区的一般输出流而言的,即减少读取到内存的次数,同时缓冲区大小固定,区满则清空,有效利用内存;
    * ByteArrayOutputStream的write方法并没有输出到输出流,而是为了得到一个保存了所有待输出字节的byte数组:缓冲区不断扩容,直到所有内容都读取到缓冲区中;至于之后对缓冲区的数据如何处理,是输出到输出流还是其他,并不关心。即我们在flush这个缓冲数组之前还可以对完整的数据进行处理而BufferedOutputStream.缓冲区保存的可能是部分数据。这样相较于BufferedOutputStream,可数据量大时可有效减少执行flush的次数,提供处理速度——但是牺牲了内存。

IO流巧记图的更多相关文章

  1. IO流思维导图

    IO思维导图总结 总览: 1.文件 <目标:File类的创建和删除的方法 > public boolean createNewFile() :当且仅当具有该名称的文件尚不存在时, 创建一个 ...

  2. Java IO流 思维导图

  3. IO流总结笔记一

    ​ IO流继承关系图 IO概述 IO流是用来处理设备上数据的输入输出. 具体设备有:硬盘,内存,键盘录入等等. IO流的具体分类: 1,根据处理的数据类型不同分为:字节流和字符流,字节流读取的最小单位 ...

  4. Java中的IO流体系

    Java为我们提供了多种多样的IO流,我们可以根据不同的功能及性能要求挑选合适的IO流,如图10-7所示,为Java中IO流类的体系. 注:这里只列出常用的类,详情可以参考JDK API文档.粗体标注 ...

  5. java开发之IO流

    一直对IO流记不清楚,从别的地方转过来. 看下图: 流的概念和作用 学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两 ...

  6. 【知了堂学习笔记】java IO流归纳总结

    皮皮潇最近学到了IO流但是感觉这一块要记的东西太多了,所以重API上查阅并总结了以下几点关于IO的知识. 1.File(文件类): File类是文件以及文件夹进行封装的对象,用对象的思想来操作文件和文 ...

  7. java IO流 总结

    [-] 1什么是IO 2数据流的基本概念 1 数据流 2 输入流Input  Stream 3 输出流 数据流分类 3 标准IO 命令行参数 标准输入输出数据流 4javaIO层次体系结构 5 非流式 ...

  8. 学习笔记-java IO流总结 转载

    1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列.Java的I/O流提供了读 ...

  9. 04 IO流(二)——IO类的记忆方法、使用场景

    关于IO流以前写的PPT式笔记请跳转:https://blog.csdn.net/SCORPICAT/article/details/87975094#262___1451 IO流的主要结构 记忆方法 ...

随机推荐

  1. JPA环境配置

    JPA概述 JPA(Java Persistence API)的简称,用于持久化的API. JAVAEE5.0平台标准的ORM的规范使得应用程序以统一的方式访问持久层. JPA和Hibernate的关 ...

  2. 前端之css样式(选择器)。。。

    一.css概述 CSS是Cascading Style Sheets的简称,中文称为层叠样式表,对html标签的渲染和布局 CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明. 例如 二.c ...

  3. linux符号与正则表达式

    特殊符号    >    或者1>   标准输出重定向 先把文件的内容清空  再放入新的内容 >> 或   2>>  追加重定向  把内容放入文件的最后一行 1   ...

  4. Microsoft Graph 概述

    这个系列文章 已经进行到了实质的阶段,继上一篇介绍了如何搭建Office 365开发环境之后,我会通过这篇文章给大家介绍一个非常重要的概念:Microsoft Graph.它之所以重要,首先是因为它是 ...

  5. 【mysql】删除字段的最后一个字符

    场景:在存入16进制id时,由于转换失误,得到的结果是0x1001L的格式,我希望转换为0x1001,去掉最后的L 指令: update tb_test set hexid=left(hexid, l ...

  6. Python基础之关于表达式

    初识表达式: 优雅.清晰和务实是python的核心价值观,如果想通过操作和处理一个序列(或其他的可迭代对象)来创建一个新 的列表时可以使用列表解析(List comprehensions)和生成表达式 ...

  7. Brup Suite 渗透测试笔记(六)

    接上次笔记这章记payload的类型分类做一说明: 1.simplelist是一个简单的payload类型,通过配置一个字符串作为payload,也可以手动添加字符串列表. 2.运行文件 Runtim ...

  8. Centos7上配置网络和本地yum方法

    配置网络yum源 前提:1.这个系统能上网 2.vim /etc/resolv.conf nameserver 8.8.8.8 nameserver 114.114.114.114 操作如下: 1.m ...

  9. JavaScript 高级程序设计 第二版

    function outputNumbers(count) {     (function () {         for (var i =0;i < count; i++) {        ...

  10. Ajax增删改查-----------删 改

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