IO流的原理和分类
##1.io流的划分
1.按照流的流向不同:输入流,输出流
2.按照流中的数据单位不同:字节流,字符流(纯文本文件使用字符流,其他文件使用字节流)
3.按照流的角色不同:节点流,处理流(流直接作用于文件上是节点流(4个),除此之外是处理流)
2.从硬盘中读入一个文件,要求此文件一定存在,若不存在,报FileNotFoundExpection
3.从程序中输出一个文件到夹岸畔,此文件可以不存在,若不存在,则船舰一个实现输出,若存在,则将存在的文件覆盖
4.真正开发时,就用缓冲流来代替节点流
5.主要最后关闭相应的流,先关闭输出流,在关闭输入流,将此操作放入finally
6.其他的流:
1.转换流:实现字节流于字符流之间的转换
InputStreamReader:输入时,实现字节流到字符流的转换,提高操作效率(前提是,数据是文本文件)=====》解码:字节数组----》字符串
OutputStreamwriter:输出时,实现字符流到字节流的转换,编码:字符串----》字符数组
2.标准的输入输出流
System.in System.out
3.打印流(都是输出流)PrintStream (处理字节) PrintWriter(处理字符)
可以使用System.setOut(PrintStream p)重写设置一下输出位置。PrintStream p = new PrintStream(new FileOutputStream(“hello.txt”),true);
4.数据流(处理基本数据类型,String类,字节数组)
DataInputStream DataOutputStream
5.对象流(用来处理对象的)
对象的序列化机制:允许把内存中的Java对象转换成平台无关的二进制流,从而允许把这种二进制流永久地保存在磁盘上,或通过网络将这种二进制流传输到另一个网络节点。当其他程序获取了这种二进制流,就可以恢复成员来的Java对象
ObjectInputStream (Object readObject) ObjectOutputStream(void writeObject(Object obj))
如何创建流的对象:ObjectOutputStream oos = new ObjectOutputStream(new File(“person.txt”));
ObjectInputStream oIs = new ObjectInputStream(new File(“person.txt”));
实现序列化机制的对象对应类的要求:①要求实现Serializable接口②同样要求类的所有属性也必须实现Serializable接口
🌂要给类提供一个序列版本号:private static final long serialVersionUID;
④属性声明为sratic 或transient的,不可以实现序列化
6.随机存取文件流:RandomAccessFile
6.1既可以充当一个输入流,又可以充当一个输出流:public RandomAccessFile(File file,String mode);
6.2支持从文件的开头读取、写入,也支持从任意位置的读取、写入
- IO流第四课,原理、分类、标准步骤
- java(146)IO流原理,分类,标准步骤
- 14-IO流(字符流-缓冲区-BufferedReader-readLine方法原理) 15-IO流(字符流-缓冲区-复制文本文件).
- 【编译原理】乔姆斯基(chomsky)文法分类
- 分类决策树原理及实现(二)
- 数据挖掘——分类——朴素贝叶斯算法原理解析
- 论坛中,无限分类的原理
- 3D打印原理及分类
- 2007透明加密一览(2) -透明加密原理和产品分类和关键评价指标
- java语言基础(81)——IO流概述、分类及基本使用
- 详说Oracle Vault——原理、安装与配置 2014-04-07 14:58:09 分类: Oracle 对于信息系统而言,安全性是至关重要的考量方面。从近年来全球爆发的信息数据泄露引起的
- 分类算法----线性可分支持向量机(SVM)算法的原理推导
- [编译原理]文法的定义与文法产生的分类
- 决策树分类算法原理分析与代码实现
- 激光打印机的原理、碳粉分类
- Atitit 贝叶斯算法的原理以及垃圾邮件分类的原理
- NPN传感器PNP传感器原理和分类
- 编译原理语言的分类
- 无限极分类原理与实现
- iOS分类实现原理