IO流知识总结: IO流的概念: 首先IO流用来处理设备之间的数据传输,是Java对数据的操作是通过流的方式,在使用IO流的时候需要带入IO包。 IO流的分类: 按操作数据分为两种:字节流与字符流。 按流向分为:输入流,输出流 字节流的基类是:InputStream ,OutputStream。 字符流的基类:Reader , Writer。 一些IO流的规律: InputStream的子类FileInputStream。 Reader的子类FileReader。 由InputStream ,OutputStream,, Reader Writer。这四个类派生出来的子类名称都是以其父类名作为子类名的后缀。后缀代表它的父类,而前缀代表它的功能。 例如:Fileinputstream 和Fileoutputstream 它们是操作文件的流。 再使用IO流的时候需要注意以下三个步骤; 1 导入IO包中的类进行 2 进行IO异常处理 3 在finally中对流进行关闭 字符流操作; FileWriter fw = new FileWriter(“Test.txt”); fw.write(“text”); fw.close(); 对字符流异常的捕获处理: FileWriter fw = null; try{ fw = new FileWriter("Test.txt"); fw.write("text"); } catch (IOException e){ System.out.println(e.toString()); } finally{ If(fw!=null) try{ fw.close(); } catch (IOException e){ System.out.println(e.toString()); } } 字符流的缓冲区: BufferedWriter 和 BufferedReader 字符流缓冲区的意义和注意事项: 1 缓冲区的出现提高了对数据的读写效率 2缓冲区要结合流才可以使用 3在流的基础上对流的功能进行了增强 字节流操作; 这个和字符流大致相同,只是在这里用的是InputStream ,OutputStream。 字节流缓冲区:BufferedInputStream 在字节流和字符流之间可以进行转换。 转换流:InputStreamReader 和 ,OutputStreamWriter 因为字节流和字符的异常捕获以及使用方法,基本是用一个道理,需要注意的就是它们之间的不同。 标准输入输出流 : System类中的字段:in,out。 它们各代表了系统标准的输入和输出设备。 默认输入设备是键盘,输出设备是显示器。 System.in的类型是InputStream. System.out的类型是PrintStream是OutputStream的子类FilterOutputStream 的子类. 标准输入输出流示例: 例:获取键盘录入数据,然后将数据流向显示器,那么显示器就是目的地。 通过System类的setIn,setOut方法对默认设备进行改变。 System.setIn(new FileInputStream(“1.txt”));//将源改成文件1.txt。 System.setOut(new FileOutputStream(“2.txt”));//将目的改成文件2.txt 因为是字节流处理的是文本数据,可以转换成字符流,操作更方便。 BfferedReader bufr = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out)); IO包中的其他类: 1 管道流 PipedInputStream和PipedOutputStream 2 打印流 PrintWriter与PrintStream 3序列流 SequenceInputStream 4 操作对象 ObjectInputStream与ObjectOutputStream 流的基本总结: 流是用来处理数据的。 处理数据时,一定要先明确数据源,与数据目的地(数据汇)。 数据源可以是文件,可以是键盘。 数据目的地可以是文件、显示器或者其他设备。 而流只是在帮助数据进行传输,并对传输的数据进行处理,比如过滤处理.转换处理等。
|