一、java中有几种类型的流?JDK为每种类型的流提供了哪些抽象类以供继承?
1、按照处理数据的单位不同:字节流和字符流。
字节流继承于InputStream/OutputStream,是以字节Byte(8bit是1Byte)为单位,最原始的流。
字符流继承于Reader/Writer,是以字符(16位bit是1字符)为单位。
2、按照功能不同:节点流和处理流。
节点流是链接特定数据源的。
处理流是链接在已有流(节点流或处理流)之上,通过对数据的处理为程序提供更为强大的读写功能。
3、按照数据流方向不同(站在程序角度):输入流(读)和输出流(写)。
二、字节流、字符流的区别
import java.io.BufferedReader; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class A{ public static void main(String[] args) throws IOException{ String str = "中国"; FileWriter fw = new FileWriter("D:/Workspaces/MyEclipse 8.5/Test/src/one/test.txt"); fw.write(str); fw.flush();//必须flush才能写入 fw.close(); FileReader fr = new FileReader("D:/Workspaces/MyEclipse 8.5/Test/src/one/test.txt"); BufferedReader br = new BufferedReader(fr); while((str = br.readLine())!=null){ System.out.println(str); } fr.close(); } }//必须要有Public类,且类名与文件名相同