IO:是用来解之间数据传输的问题 按照流向进行划分: 1、输入流 2、输出流
按照数据类型划分: 1、字节流 1)基本字节流 基本字节输入流 InputStream(抽象类) FileInputStream 基本字节输出流 OutputStream(抽象类) FileOutputStream 2)字节缓冲流 字节缓冲输入流 BufferedInputStream 创建对象: BufferedInputStream bis = new BufferedInputStream( new FileInputStream(...)); 字节缓冲输出流 BufferedOutputStream 创建对象: BufferedOutputStream bos = new BufferedOutputStream( new FileOutputStream(...));
读取数据的两种方式: a:一次只读一个字节 int b = 0; while((b=bis.read())!=-1){ System.out.print((char)b); } bis.close(); b:一次读取一个字节数组 byte[] bytes = new byte[1024]; int length = 0; while((length = bis.read(bytes))!=-1){ System.out.print(new String(bytes,0,length)); } bis.close();写数据的三种方式: 一次只写一个字节 一次写一个字节数组 一次写一个字节数组的一部分 注意:每写完后,调用flush()刷新缓冲区
2、字符流 字符流 = 字节流 + 编码表 1)基本字符转换流 基本字符输入流 Reader A: InputStreamReader 创建对象: InputStreamReader isr = new InputStreamReader( new FileInputStream(...)); B:简化写法:FileReader 创建对象: FileReader fr = new FileReader(...); 基本字符输出流 Writer A: OutputStreamWriter 创建对象: OutputStreamWriter osw = new OutputStreamWriter( new FileOutputStream(...)); B:简化写法:FileWriter 创建对象: FileWriter fw = new FileWriter(...); 2)字符缓冲流 字符缓冲输入流: BufferedReader 创建对象: 方式1:BufferedReader br = new BufferedReader( new InputStreamReader(new FileInputStream(...))); 方式2:BufferedReader br = new BufferedReader(new FileReader(...));
c)特殊方法:readLine(),一次读取一行 String line = null; while((line=br.readLine())!=null){ System.out.println(line); } br.close();
字符缓冲输出流: BufferedWriter 创建对象: 方式1:BufferedWriter bw = new BufferedWriter( new OutputStreamWriter(new FileOutputStream(...))); 方式2:BufferedWriter bw = new BufferedWriter(new FileWriter(...));
d)特殊方法:newLine();
读取数据的两种方式: a) 一次只读取一个字符 int ch = 0; while((ch = isr.read())!=-1){ System.out.println((char)ch); } isr.close(); b) 一次读取一个字符数组 char[] chars = new char[1024]; int length = 0; while((length = isr.read(chars))!=-1){ System.out.print(new String(chars,0,length)); } isr.close();一次只写一个字符 一次写一个字符数组 一次写一个字符数组的一部分 注意:每写完后,调用flush()刷新缓冲区