java IO流 内容整理
在java中,对数据的输入和输出操作以流的方式进行。(注:对文件的操作用io.File类,但不能对文件中的内容进行操作)
一、IO流的分类:
按数据流的方向不同,可以分为输入流和输出流;
按处理数据的单位不同,可以分为字节流和字符流;
按功能不同,可以分为节点流和处理流;
二、J2SDK所提供的所有流类型位于java.io包,都分别继承自以下四种抽象流类型:

注:以上是四个抽象类
java输入输出流是站在程序的角度来说的。
从文件中读取数据用输入流,向文件中写数据用输出流。
字节流:单位是字节(8Bit),
字符流:单位是字符(16Bit),
可以一次写入或读取一个汉字,不会像字节流处理时会有乱码。因为java采用的是Unicode编码,一个字符等于2个字节。
节点流:直接就可以操作数据源

处理流:需要套接在节点流上才能操作数据,不能直接操作数据源

1. 缓冲流,要套接在相应的节点流之上,对读写的数据提供了缓冲的功能,提高了读写的效率,同时增加了一些新的方法。
BufferedReader提供了readLine方法用于读取一行字符串,BufferedWriter提供了newLine用于写入一个行分隔符。
对于输出的缓冲流,写出的数据会先在内存中缓存,使用flush方法将会使内存中的数据立刻写出。
BufferedReader(Reader in);
BufferedOutputStream(OutputStream out);
2. 转换流,用于字节数据到字符数据之间的转换。
InputStreamReader需要和InputStream套接,OutputStreamWriter需要和OutputStream套接。
转换流在构造时,可以指定其编码集合,例如:
InputStreamReader ipr = new InputStreamReader(System.in,"ISO8859_1");
3. 数据流,提供了可以存取与机器无关的Java原始数据类型(如:int,long,double等)的方法:
如:readBoolean(); readByte();readChar();writeInt(int i);writeLong(long v) ...
DataInputStrem(InputStream in);
DataOutputStream(OutputStream out);
4. Print流,只有输出流,提供了重载的print、println方法用于多种数据类型的输出(我们经常用到的System.out.print()其中out字段的类型就是PrintStream):
print(char c) 、print(double d) 、print(int i) 、
PrintWriter和PrintStream的输出操作不会抛出异常,有自动flush功能。
该流也可以用于写日志。
5. Object流,直接写入或读取一个Object中所有的内容,包括变量和方法,但是该类必须先序列化,即implements Serializable接口,
如果这个类中某个成员变量不想被序列化,需要用transient关键字修饰。
writeObject(Object obj)
java IO流 内容整理的更多相关文章
- Java IO流系统整理
Java IO流的分类 Java中的流,可以从不同的角度进行分类. 按流向分类: 输入流: 程序可以从中读取数据的流.输出流: 程序能向其中写入数据的流. 按数据传输单位分类: 字节流:以字节(8位二 ...
- Java IO流分析整理 .
Java中的流,可以从不同的角度进行分类. 按照数据流的方向不同可以分为:输入流和输出流. 按照处理数据单位不同可以分为:字节流和字符流. 按照实现功能不同可以分为:节点流和处理流. 输出流: 输入流 ...
- java IO流整理
Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...
- Java IO流学习
Java IO流学习 Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是 ...
- Java:IO流与文件基础
Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象 ...
- java IO流详解
流的概念和作用 学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...
- Java IO流学习总结
Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...
- Java IO流题库
一. 填空题 Java IO流可以分为 节点流 和处理流两大类,其中前者处于IO操作的第一线,所有操作必须通过他们进行. 输入流的唯一目的是提供通往数据的通道,程序可以通过这个通道读取数 ...
- java io流 运行错误时,保存异常到文件里面
java io流 运行错误时,保存异常到文件里面 下面这个实例,运行后,输入数字,为正确,如果输入字符串,则报错,保存错误信息 //运行错误时,保存异常到文件里面 //下面这个实例,运行后,输入数字, ...
随机推荐
- 【黑金教程笔记之001】veriloghdl 扫盲文—笔记&勘误
001_veriloghdl 扫盲文—笔记&勘误 2014/10/31 原文作者:akuei2 联系方式:blog.ednchina.con/akuei2 勘误001: Page 3 0.1 ...
- RestTemplate中headers中添加Host不生效
在使用restTemplate访问内网接口时,不打算指host,支持ip访问,所以我们需要再header中指定host.但经调试,发现HttpURLConnection中Host无法覆盖.解决方案: ...
- Math对象常用方法(取整细节)
Math 对象 Math 对象用于执行数学任务. 1.常用属性: 1.E :返回算术常量e,即自然对数的底数(约2.718) 2.PI :返回圆周率,约3.14159 2.常用方法 Math.方 ...
- bzoj1048(记忆化搜索)
1048: [HAOI2007]分割矩阵 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1218 Solved: 890[Submit][Statu ...
- 【原创】《从0开始学RocketMQ》—单机搭建
内容目录 1. RocketMQ是什么? 2. 下载并解压 3. 启动NameServer 4. 启动 Broker 5. 关闭消息队列 1. RocketMQ是什么? RocketMQ是一种消息队列 ...
- 给Ambari集群里安装基于Hive的大数据实时分析查询引擎工具Impala步骤(图文详解)
不多说,直接上干货! Impala和Hive的关系(详解) 扩展博客 给Clouderamanager集群里安装基于Hive的大数据实时分析查询引擎工具Impala步骤(图文详解) 参考 horton ...
- 字符串处理/贪心 Codeforces Round #307 (Div. 2) B. ZgukistringZ
题目传送门 /* 题意:任意排列第一个字符串,使得有最多的不覆盖a/b字符串出现 字符串处理/贪心:暴力找到最大能不覆盖的a字符串,然后在b字符串中动态得出最优解 恶心死我了,我最初想输出最多的a,再 ...
- 题解报告:hdu 1230 火星A+B(字符串)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1230 Problem Description 读入两个不超过25位的火星正整数A和B,计算A+B.需要 ...
- sql server添加用户和给用户授权
--创建用户CREATE LOGIN 用户名 WITH PASSWORD=N'密码', DEFAULT_DATABASE=数据库名, CHECK_EXPIRATION=OFF, CHECK_POLIC ...
- vue全局loading组件
本组件作用在页面加载完成前进行loader提示,提升用户体验,只需要在app.vue中引用一次,整个项目中路由切换时就可以自动进行提示(vuex版): 1. 添加vuex值和方法: import Vu ...