常用的I/O流类型
1.I/O流类型基础.(类中方法和子类查看java spring API)
抽象类java.io.InputStream:是所有字节输入流的父类,定义了以字节为基本单位读取数据的基本方法
抽象类java.io.OutputStream:所有字节输出流的类型的父类
抽象类java.io.Reader: 读取输入流类型的父类
抽象类java.io.Writer:写入输出流的父类
2.常用输入/输出的类型(效率不断提高)
2.1 FileInputStream/FileOutputStream
java.io.FileInputStream :一般是从本地磁盘读取字节数据。一般使用方法是:先创建FileInputStream 对象关联到要读取的文件,然后用read()方法读取字节数据,然后再进行别的操作。如果目标文件不存在,则报错。
java.io.FileOutputStream :将字节数据写到指定文件。如果文件存在则写到指定文件,如果目标文件不存在则自动创建该文件,如果目标文件所在目录也不存在,则报错
2.2 java.io.FileWriter/java.io.FileReader
FileReader:以字符为基本单读取文本文件(保存了的文本总是按照本地操作系统进行了默认编码所以读取时不会乱码)
FileWriter:将字符数据写入到文本文件(文本进行保存时以字节进行保存,解析时可能出现乱码现象)
2.3 java.io.BufferedReader/java.io.BufferedWriter
BufferedReader:是从字符输入流中读取文本,将多个字符存入缓存提供读取字符、数据或行的有效方法。
BufferedWriter:将字符输出流缓冲后写出。(缓冲区容量可以在构造方法中指定)
2.4java.io.InputStreamReader/java.io.OutputStreamWriter
InputStreamReader和OutputStreamWriter都是把字节流转为了字符流,但是为了高效常会用BufferedReader和BufferedWriter进行封装,一般实际中都用器子类FileWriter和FileReader(除键盘操作)
2.5 PrintStream和PrintWriter 都是输出打印的类
PrintStream只能封装OutputStream类型的字节输出流
PrintWriter 既可封装OutputStream类型的字节输出流,也能封装Writer类型的字符输出流
2.6java.io.DataInpuStream/java.io.DataOutputStream(注意其读取的文件类型是.data文件并不是文本文件)
DataInpuStream:能直接读取java基本类型和String类型的数据
DataOutputStream:能直接写入java基本类型和String类型的数据
2.7java.io.CharArrayReader/java.io.CharArrayWriter
3对象序列化
Java de I/O主要是对字节或字符经常读写操作。或者对可以处理基本的数据类型,但是都不能处理String以外的引用类型,“序列化”是将并行数据转换为串行数据的处理过程,而“对象序列化”是将对象的状态数据以字节流的形式进行处理,从而被I/O流操作
常用的I/O流类型的更多相关文章
- 1.java.io包中定义了多个流类型来实现输入和输出功能,
1.java.io包中定义了多个流类型来实现输入和输出功能,可以从不同的角度对其进行分 类,按功能分为:(C),如果为读取的内容进行处理后再输出,需要使用下列哪种流?(G) A.输入流和输出流 B ...
- MySQL常用的七种表类型(转)
MySQL常用的七种表类型(转) 其实MySQL提供的表类型截至到今天已经有13种,各有各的好处,但是民间流传的常用的应该是7种,如果再细化出来,基本上就只有两种:InnoDB.MyIASM两种. ...
- Linux 操作系统常用的三种流012
Linux 操作系统常用的三种流: 0 标准输入流 1 标准输出流 2 标准错误流 通常在写脚本启动程序,写log时候,会出现如下写法: nohup commod > log.txt 2> ...
- Java中I/O流之处理流类型
节点流:一个管道直接连接到数据源上面: 处理流:套在别的管道上面的管道: 处理流类型: [注]:在字符流中的OuPutStreamReader写错了,应该是:OutputStreamWriter
- MyISAM、InnoDB、Memory这3个常用引擎支持的索引类型
表格对比了MyISAM.InnoDB.Memory这3个常用引擎支持的索引类型: 索引 MyISAM引擎 InnoDB引擎 Memory引擎 B-Tree索引 支持 支持 支持 HASH索引 不支持 ...
- 各浏览器对常用或者错误的 Content-Type 类型处理方式不一致
标准参考 content-type 用于定义用户的浏览器或相关设备如何显示将要加载的数据,或者如何处理将要加载的数据,此属性的值可以查看 MIME 类型. MIME (Multipurpose Int ...
- js事件常用操作、事件流
注册事件 给元素添加事件,称为注册事件或者绑定事件. 注册事件有两种方式:传统方式和方法监听注册方式 传统方式 on开头的事件,例如onclick <button onclick="a ...
- JavaIO流原理之常用字节流和字符流详解以及Buffered高效的原理
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/5827509.html Java的流体系十分庞大,我们来看看体系图: 这么庞大的体系里面 ...
- linux常用命令:Linux 文件类型与扩展名
Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如file.txt.file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文 ...
随机推荐
- HTML-001-日期组件 layDate 演示
在日常的网页开发过程中,日期组件已经成为不可或缺的组件之一.同时,随着广大杰出攻城狮的不懈努力,也出现了很多优秀的日期组件,其中我个人觉得 layDate 日期组件是一个非常不错的组件,简洁易用,样式 ...
- sell -- 解码16进制unicode
1. //System.out.println("decodeUnicode:" + decodeUnicode("0049"));//I public sta ...
- python笔记 - day8
python笔记 - day8 参考: http://www.cnblogs.com/wupeiqi/p/4766801.html http://www.cnblogs.com/wupeiqi/art ...
- django中嵌入百度editor插件
一.安装和配置步骤: 1.先下载百度ueditor插件,并安装pip install DjangoUeditor 2.把下载好的ueditor插件放到自己的项目中 3.配置setting INSTAL ...
- Q promise的使用
虽然es6已经出现一段时间了,但是对于没有使用es6的node.js的时候,仍要解决回调金字塔,因此Q还是很有必要的.
- Java开发遇到的问题及解决方案
一.java.lang.OutOfMemoryError 问题:myeclipse 内存不足,又显示内存溢出等问题怎么回事?( java.lang.OutOfMemoryError: PermGen ...
- ios-点击图片放大,背景变半透明
在view中点击一个图片,图片放大,背景变半透明,图片不会变透明的效果图如下 思路:图片框是一个按钮,监听点击事件. 当点击图片后:改变图片的frame,使图片放大,并且在controller.vie ...
- 成员变量NSString类型指针的属性为什么用copy(属性)
创建一个分类Person设置属性@property(nonatomic,strong) NSString * name; 在- (void)viewDidLoad 中打印测试 name的属性是stro ...
- LuaExpat笔记
xml xml是一种格式化数据交换语言, 适用于在网络上不同应用会话. http://www.xml.com/pub/a/98/10/guide0.html exPat 一种C语言实现的 xml 文档 ...
- Java基础之读文件——使用通道读二进制数据(ReadPrimes)
控制台程序,本例读取Java基础之写文件部分(PrimesToFile)写入的primes.bin. import java.nio.file.*; import java.nio.*; import ...