Java核心API之io包
标签(空格分隔): Java
io流概述
大部分程序都是需要输入输出处理的,比如从键盘中读取数据,从屏幕中输出数据,从文件中写数据等等。在java中将这些不同类型的输入输出抽象为流。其中输入输出的数据则称为数据流,用统一的接口表示,从而使程序设计简单明了。
流一般是分为两种,一种是输入流,一种是输入流,然而在一些情况下,这两者的区分并不明显。比如同一个文件,在向里面写数据的时候就是输入人流,在向里面读取数据的时候就是输出流。
##基类:InputStream和OutputStream
字节流主要操作byte类型数据,以 byte数组为准,java中每一种字节流的基本功能依赖于基本类InputStream和OutputStream。他们是抽象类,不能直接使用。当然都是提供了各种供复写的方法。比如read(),close()方法等。
##文件流
最常见的文件操作
用于读写本地文件系统的文件:FileInputStream和FileOutputStream
描述本地文件系统中的文件目录:File,FileDesciptor和FilenameFilter
提供对本地文件系统文件的随机访问支持:RandomAccessFile
FileInputStream类用于打开一耳光输入文件,要是打开的文件不存在,则会产生例外FileNotFoundException,这是一个非运行是例外,必须捕获或者声明抛弃。
FileOutputStream类用来打开一个输出文件,要是打开的输出文件不存在,则会创建一个新的问价,否则原文件的内容会被新写入的内容覆盖。
缓冲流
类BufferedInputStream和BufferedOutputStream实现了带缓冲的过滤流,提供李锐缓冲机制,把任意的io流“捆绑”到缓冲流上,提高了提取Io流时的读取效率
数据流
接口DataInpput和DataOutput,设计了一种较为高级的数据输入输出方式:除了可处理字节和字节数组外,还可以处理in,float,boolean等基本类型的数据。
最著名的封装方法就是readline().
##标准流,内存读写流,顺序输入流
标准流,语言包中的java.lang中的System类管理标准输入、输出流和错误流。
System.in从InputStream中继承而来,用于从标准输入设备中获取输入数据(一般是键盘)
System.out从PrintStream中继承而来,把输入送到缺省的显示设备(通常是显示器)
System.err也是从PrintStream中继承而来,把错误信息送到缺省的显示设备(通常是显示器)
每当mian方法被执行时,就会自动生产上述三个对象。
内存读写流
为了支持在内存上的io,java.io提供了类:ByteArrayInputStream,ByteArrayOutputStream和StringBufferInputStream
顺序输入流
java.io提供了类SequenceInputStream,使应用程序可以将几个输入流连接起来。顺序输入流提供了将多个不同的输入流统一为一个输入流的功能,这使得程序可能更加简洁