IO流中,我想问一下,到底字节流字符流哪些需要刷新,带缓冲区的字节流字符流哪些需要刷新。各自的close()哪些可以具有刷新功能,哪些不可以。
下面的例子是不带缓冲区的字符流,当不close()时,在write()后flush()才有,当close()时,不刷新也有。
请举例证明其他IO流的例子。
- package exercise;
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.io.FileReader;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.io.Reader;
- import java.io.Writer;
- public class IOStream_flush {
- public static void main(String[] args)
- {
- Reader bis=null;
- Writer bos=null;
- try {
- File file1=new File("src\\exercise\\Test2.java");
- File file2=new File("src\\exercise\\NoneBufferedTest2_copy_zifu.txt");
- bis=new FileReader(file1.getAbsolutePath());
- bos=new FileWriter(file2.getPath());
- char[] buf=new char[1024];
- int len=0;
- while((len=bis.read(buf))!=-1)
- {
- bos.write(buf,0,len);
- }
-
- } catch (FileNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- finally{
- try {
- bis.close();
- bos.close();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
- }
-
-
-
复制代码 |