字节流 |--InputStream(字节输入流,字节流的抽象父类,抽象类不能直接创建对象,必须使用子类) |--FileInputStream(文件字节输入流,就是以字节的形式读取文件内容) |--read()每次读取一个字节(byte),但是返回值类型,为int类型,防止出现文件提前结束 |--read(byte[] b)每次读取多个字节,将内容放入字节数组b中 |--BufferedInputStream(字节输入缓冲流,其实就是一个包装类,创建对象时要接收一个InputStream,内部封装了一个1024*8的字节数组) |--使用BufferedInputStream就不用再定义数组了 |--OutputStream(字节输出流,字节流的抽象父类) |--FileOutputStream(文件字节输出流,就是以字节的形式将内容写入到文件中) |--write(int b)一次写出一个字节 |--write(byte[] b)将字节数组b里的内容写入到文件中 |--write(byte[] b, int off, int len)将字节数组b里的内容,从索引为off的位置开始,总共写len个 |--BufferedOutputStream(字节输出缓冲流,其实就是一个包装类,创建对象时要接收一个OutputStream,内部封装了一个1024*8的字节数组) 字符流 |--Reader(字符输入流,字符流的抽象父类,抽象类不能直接创建对象,必须使用子类) |--FileReader(文件字符输入流,就是以字符的形式读取文件中的内容) |--read()每次读取一个字符,即可以按照字符大小读取,返回值类型提升为int类型 |--read(char[] b)每次读取多个字符,将内容放入字符数组b中 |--BufferedReader(字符输入缓冲流,其实就是一个包装类,创建对象时要接收一个Reader,内部封装了一个1024*8的字符数组) |--使用BufferedReader和BufferedWriter就不用再定义数组了 |--readLine()可以读取一行字符(不包含换行符号) |--LineNumberReader是BufferedReader的子类, 具有相同的功能, 并且可以统计行号 |--getLineNumber()方法可以获取当前行号 |--setLineNumber()方法可以设置当前行号 |--Writer(字符输出流,字符流的抽象父类) |--FileWriter(文件字符输出流,就是以字符的形式将内容写入到文件中) |--write('a')/write("aaaa")可以写入单个字符或者写入字符串 |--write(char[] b, int off, int len)将字符数组b里的内容,从所以为off的位置开始,总共写len个 |--BufferedWriter(字符输出缓冲流,其实就是一个包装类,创建对象时要接收一个Writer,内部封装了一个1024*8的字符数组) |--newLine()可以输出一个跨平台的换行符号"\r\n" 转换流(使用指定的码表读写字符) |--InputStreamReader字节输入流到字符输入流的桥梁 |--OutputStreamWriter字符输出流到字节输出流的桥梁
|