字符流:
Writer:写
|---FileWriter(字符输入流)
1.new FileWriter("1.txt",true) 如果1.txt在当前目录下不存在,就自动创建。
如果已经存在,true,表示我们接着已经存在的文件的最末尾处续写。
|---BufferedWriter(将文本写入字符输出流,缓冲各个字符,从而提供单个字符、
数组和字符串的高效写入)这是对FileWriter功能的扩展。
1.new BufferedWriter(new FileWriter("1.txt",true));
2.其方法write("ksjflsdk");这是写入到缓冲区中,并没有直接写到1.txt文件中,
所以我们可以通过两个方法将缓冲区中的字符刷入到文件中,flush(),和close()
方法。
3.newLine();加入换行符,对不同平台都支持。
|----BufferedReader(从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取).
1、其String readLine();方法是每次读取一行文本(当读取时遇到换行符时就会认为这是一行的结束符,注意,并不读入换行符;如果一直读不到换行符,那么它就会一直等待)。当读取到文本文件的最后时会返回null,所以可以用这个条件来控制其读写的循环。
While((str=readLine())!=null)System.out.println(str);这样就可以读取完整个文件。
|---OutputStreamWriter(是字符流通向字节流的桥梁)
1. new BufferedWriter(new OutputStreamWriter(System.out));利用BufferedWriter 对OutputStreamWriter进行缓冲。New OutputStreamWriter()中可以接收的参数
是OutputStream流对象。
Reader:读
|---InputSteamReader(是字节流通向字符流的桥梁,通常用于网络中,因为在网络中是字节流的传输,当我们需要将汉字输出时,就需要将字节流转换成字符流)
1、new BufferedReader(new InputStreamReader(InputStream in));
|---FileReader(读取文本文件)
1、new BufferedReader(new FileReader(“demo.txt”));
字节流:
InputStream读
|---FileInputStream
1、对字节流文件的读取,如图片文件。
2、New FileInputStream(File f);
|---DataInputStream
1、数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型。
2、New DataInputStream(InputStream in);对读取的数据进行缓冲
3、String readUTF();
|---BufferedInputStream(在创建 BufferedInputStream 时,会创建一个内部缓冲区数组)
1、new BufferedInputStream(new FileInputStream(File f));
2、对FileInputStream的缓冲,加快读入数据。
OutputStream 写
|---FileOutputStream
1、对字节流文件的写出,如图片文件。
2、FileOutputStream fos=new FileOutputStream("1.bmp”);
|---DataOutputStream
1、常用于网络传输数据
2、New DataOutputStream(OutputStream out)
3、Void writeUTF(String str)
以与机器无关方式使用 UTF-8 修改版编码将一个字符串写入基础输出流。
|---BufferedOutputStream(该类实现缓冲的输出流。通过设置这种输出流,应用程序就可以将各个字节写入底层输出流中,而不必针对每次字节写入调用底层系统)
1、同样用于网络上的发送字节流数据
2、new BufferedOutputStream(OutputStream out)
3、New BufferedOutputStream(new FileOutputStream(“e:\\1.jpg”));