io流

一、流的分类

   按操作数据分:字节流与字符流

   按流向分:输出流,输入流

二、IO流常用基类

字节流的抽象基类:

  InputStream,OutputStream

字符流的抽象基类

 Reader  writer

三、字符流的特点

1、Writer(抽象基类:意味着要别人来实现)

常用直接子类:FileWriter

需求:在硬盘上,创建一个文件并写入数据

import java.io.FileWriter;
import java.io.IOException;


public class IoWriter {
    public static void main(String[] args) throws IOException {
        //创建一个FileWriter对象,该对象被初始化必须要明确被操作的文件
        //假如"demo.txt"之前不存在,编译运行后它会被创建。如果目录下有同名文件,将被覆盖 
        FileWriter fw=new FileWriter("demo.txt");
       //调用write方法,将字符串写到流(内存)中,还没写到目的地
        fw.write("abc");
      //这个刷新方法把流中的东西写到目的地
        fw.flush();
    }

}

需求:我想续写文件内容,该怎么做?

import java.io.FileWriter;
import java.io.IOException;


public class IoWriter {
    public static void main(String[] args) throws IOException {
        
        //加上一个true即可
        FileWriter fw=new FileWriter("demo.txt",true);
      
        fw.write("hahaha");
    
        fw.flush();
    }

}

2、Reader(抽象)

常用子类:FileReader 

需求:读取“demo.txt”中的内容

public class FileReaderDemo {
    public static void main(String[] args) throws IOException {
        //我想读的文件是谁。这个文件必须存在,否则报异常
        FileReader fr=new FileReader("demo.txt");
       //read():一次读一个字符。而且会自动往下读
        int ch1=fr.read();        
        System.out.println("ch1="+(char)ch1);
        int ch2=fr.read();        
        System.out.println("ch2="+(char)ch2);
        //假如我读到末尾,没有东西可以读,就会返回-1
        while(true){
            int ch=fr.read();
            if(ch==-1)
                break;
            System.out.println("ch="+(char)ch);
        }
            
        fr.close();
    }

}

又或者把循环语句改成:

public class FileReaderDemo {
    public static void main(String[] args) throws IOException {
        //我想读的文件是谁。这个文件必须存在,否则报异常
        FileReader fr=new FileReader("demo.txt");
      
        //又或者这么读,如果不等于-1,我就一直读
        int ch=0;
        
        while((ch=fr.read())!=-1){
            System.out.println("ch="+(char)ch);
        }
                fr.close();
    }

}

 

 

 


          

 

posted on 2017-02-20 22:30  chenqr11  阅读(107)  评论(0)    收藏  举报