网站首页 > java教程 正文
IO流的操作规律
IO流中对象很多,解决问题(处理设备上的数据时)到底该用哪个对象呢?
把IO流进行了规律的总结(四个明确):
l 明确一:要操作的数据是数据源还是数据目的。
源:InputStream Reader
目的:OutputStream Writer
先根据需求明确要读,还是要写。
l 明确二:要操作的数据是字节还是文本呢?
源:
字节:InputStream
文本:Reader
目的:
字节:OutputStream
文本:Writer
已经明确到了具体的体系上。
l 明确三:明确数据所在的具体设备。
源设备:
硬盘:文件 File开头。
内存:数组,字符串。
键盘:System.in;
网络:Socket
目的设备:
硬盘:文件 File开头。
内存:数组,字符串。
屏幕:System.out
网络:Socket
完全可以明确具体要使用哪个流对象。
l 明确四:是否需要额外功能呢?
额外功能:
转换吗?转换流。InputStreamReader OutputStreamWriter
高效吗?缓冲区对象。BufferedXXX
InputStream
FileInputStream
BufferedInputStream
OuputStream
FileOutputStream
BufferedOuputStream
Writer
OutputStreamWriter
FileWriter
BufferedWriter
Reader
InputStreamReader
FileReader
BufferedReader
----------------------------------------------------------
l 字节流
l 字节输入流 InputStream
l FileInputStream 操作文件的字节输入流
l BufferedInputStream高效的字节输入流
l 字节输出流 OutputStream
l FileOutputStream 操作文件的字节输出流
l BufferedOutputStream 高效的字节输出流
l 字符流
l 字符输入流 Reader
l FileReader 操作文件的字符输入流
l BufferedReader 高效的字符输入流
l InputStreamReader 输入操作的转换流(把字节流封装成字符流)
l 字符输出流 Writer
l FileWriter 操作文件的字符输出流
l BufferedWriter 高效的字符输出流
l OutputStreamWriter 输出操作的转换流(把字节流封装成字符流)
l 方法:
l 读数据方法:
l read() 一次读一个字节或字符的方法
l read(byte[] char[]) 一次读一个数组数据的方法
l readLine() 一次读一行字符串的方法(BufferedReader类特有方法)
l readObject() 从流中读取对象(ObjectInputStream特有方法)
l 写数据方法:
l write(int) 一次写一个字节或字符到文件中
l write(byte[] char[]) 一次写一个数组数据到文件中
l write(String) 一次写一个字符串内容到文件中
l writeObject(Object ) 写对象到流中(ObjectOutputStream类特有方法)
l newLine() 写一个换行符号(BufferedWriter类特有方法)
l 向文件中写入数据的过程
1,创建输出流对象
2,写数据到文件
3,关闭输出流
l 从文件中读数据的过程
1, 创建输入流对象
2, 从文件中读数据
3, 关闭输入流
l 文件复制的过程
1, 创建输入流(数据源)
2, 创建输出流(目的地)
3, 从输入流中读数据
4, 通过输出流,把数据写入目的地
5, 关闭流
猜你喜欢
- 2024-09-16 Java学习:Lambda表达式(java lambda表达式详解)
- 2024-09-16 java高阶面试问题java8中的CAS讲解
- 2024-09-16 java时间操作(java时间运算)
- 2024-09-16 Java学习:JDBC各类详解(jdbc的类)
- 2024-09-16 Java注解和反射学习总结(java中注解的原理)
- 2024-09-16 MacBook pro M1 JDK版本切换(mac更换jdk)
- 2024-09-16 使用Java语言从零开始创建区块链其实并不难,快来围观吧!
- 2024-09-16 java成为Python手下的一员!看我大Python如何调用java服务的!
- 2024-09-16 两分钟轻松搞懂联合索引,最左匹配原则?#java程序员
- 2024-09-16 菜鸟学习Java需要提前做好哪些准备?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)