刚学java流技术IO编程时,一下出来这么多流,很是不敏感,不感冒,在学习了这段时间,发现好多项目中的读写数据,输入输出用到的都是以前学的最基本的,但是自己却不是很理解其根本,今天就说几个流中简单但又常用的几个知识点
Java.io包中定义了多个流类型,来实现输入输出功能:
通俗的说节点流就是一个简单的输入输出流,而处理流是“连接”在已存在的字节流或处理流之上的,通过对数据的处理为程序提供更为强大的读写功能。
我们最经常用到的节点流类型是有关文件处理的有FileReader FileWriter FileInputStream FileOutputStream
Ø FileInputSteam 和 FileOutputStream 类支持其父类InputStream 和OutputStream 所提供的数据读写方法。
Ø 注意:
§ 在实例化FileInputStream和FileOutputSteam流时要用try-catch语句以处理其可能抛出的FileNotFoundException。
§ 在读写数据时也要用try-catch语句以处理可能抛出的 IOException。
§ FileNotFoundException是IOException的子类
FileReader 和 FileWriter 分别继承自Reader和Writer,FileInputSteam与FileOutputStream类似,所不同的时FileReader和FileWriter向文件输入和输出的数据单位为字符。
处理流中常用到的有缓冲流 、转换流。
l 缓冲流有BufferedReader BufferedWriter BufferedInputStream BufferedOutputStream ,缓冲流要“套接”在相应的节点流之上,对读写的数据提供了缓冲的功能,提高了读写的效率,同时增加了一些新的方法
l BufferedReader提供了readLine方法用于读取一行字符串(以"r或"n分 隔)。
l BufferedWriter提供了newLine用于写入一个行分隔符。
l 对于输出的缓冲流,写出的数据会先在内存中缓存,使用flush方法将会使内存中的数据立刻写出。
在Socket编程中接受信息时,不是直接用InputStream接收,而是把内容放入缓冲之中进行读取 ,在Socket中的简单应用如下
转换流InputStreamReader OutputStreamWriter 用于字节数据到字符数据之间的转换。其中InputStreamReader 需要和InputStream”套接”,OutputStreamWriter需要和OutputStream套接
数据流DataInputStream DataOutputStream 提供了可以存取与机器无关的java原始数据类型
l Print流:PrintWriter和PrintStream都属于输出流,分别针对与字符和字节,PrintWriter和PrintStream提供了重载的print,Println方法用于多种数据类型的输出。PrintWriter和PrintStream的输出操作不会抛出异常,用户通过检测错误状态获取错误信息。PrintWriter和PrintStream有自动flush功能
l
这几个流的类型都是在以后的学习中经常用到的。就不一一做例子啦
以后所学到的所有流类型都是继承 InputStream OutputStream Reader Writer 这四个抽象的流类型