Java-IO流

操作字节

   输入字节流:FileInputStream

      输出字节流:FileOutputStream

操作字符

     字符输入流:FileReader

     字符输出流:FileWriter

1.FileInputStream 字节输入流[用于读取文件]:

eg1:

 public  static void yInputStream() throws IOException {
        //创建字节输入流
        FileInputStream fis=new FileInputStream("F:\\temp\\Test.java");//文件不存在自动创建
        //创建一个长度为1024的竹筒
        byte[] buf=new byte[1024];
        //用于保存实际读取的字节数
        int hasRead=0;
        while ((hasRead=fis.read(buf))>0){
            System.out.println(new String(buf,0,hasRead));
        }
        fis.close();
    }

eg2:

    public static void yPrintStream() throws IOException {
        FileOutputStream fos=new FileOutputStream("F:\\temp\\OutTemp.txt");
        PrintStream ps=new PrintStream(fos);//PrintStream 是打印输出流
        ps.println("夜归偶怀故人独孤景略");
        ps.println(new Test());
        fos.close();
    }

 

2.FileOutputStream 字节输出流[用于写入文件]:

 public static void yOutputStream() throws IOException {
        //创建文件输出流
        FileOutputStream fos=new FileOutputStream("F:\\temp\\OutTemp.txt");
        fos.write(("String世界").getBytes()); //注意需转化为字节
        fos.close();
    }

3.FileReader 字符输入流[用于读取文件]:

    public static void yReader() throws IOException {
        //创建字符输入流
        FileReader fr=new FileReader("F:\\temp\\OutTemp.txt");
        //用于保存实际读取的字符数
        char[] buf=new char[1024];
        int hasRead=0;
        while((hasRead=fr.read(buf))>0){
            //将字符转换成字符串
            System.out.println(new String(buf,0,hasRead));
        }
        fr.close();
    }

4.字符输出流[用于写入文件]:

 public static void yWriter() throws IOException {
        FileWriter fw=new FileWriter("F:\\temp\\WriteTemp.txt");//文件不存在自动创建
        fw.write("夜归偶怀故人独孤景略\r\n");
        fw.write("买醉村场半夜归,");
        fw.write("西山落月照柴扉。\r\n");
        fw.write("刘琨死後无奇士,");
        fw.write("独听荒鸡泪满衣!\r\n");
        fw.close();
    }

 

 

/*
* BufferedWriter:将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
* BufferedReader:从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
*/

 

   public static void WriteTest() throws IOException {
        //创建输出缓冲流对象
        BufferedWriter bw = new BufferedWriter(new FileWriter("test.txt"));
        bw.write("hello");
        bw.close();
    }
    public  static  void ReaderTest() throws IOException {
        //创建输入缓冲流对象
        BufferedReader br = new BufferedReader(new FileReader("Introduce.txt"));
        /*
        //一次读写一个字符
        int ch;
        while((ch=br.read())!=-1){
            System.out.print((char)ch);
        }
        */
        //一次读写一个字符数组
        char[] chs = new char[1024];
        int len;
        while((len=br.read(chs))!=-1) {
            System.out.print(new String(chs,0,len));
        }
        //释放资源
        br.close();
    }

 


/*
* 缓冲流的特殊功能:
* BufferedWriter
* void newLine():写一个换行符,这个换行符由系统决定
* BufferedReader
* String readLine():一次读取一行数据,但是不读取换行符
*/


    public static void main(String[] args) throws IOException, IOException {
        /*
        BufferedWriter bw = new BufferedWriter(new FileWriter("test.txt"));
        for(int x=0; x<10; x++) {
            bw.write("hello"+x);
            //bw.write("\r\n");
            bw.newLine();
            bw.flush();
        }
        bw.close();
        */

        BufferedReader br = new BufferedReader(new FileReader("test.txt"));

        /*
        String line = br.readLine();
        System.out.println(line);

        line = br.readLine();
        System.out.println(line);

        line = br.readLine();
        System.out.println(line);

        line = br.readLine();
        System.out.println(line);
        */

        String line;
        //1:br.readLine()
        //2:line=br.readLine()
        //3:line != null
        while((line=br.readLine())!=null) {
            System.out.println(line);
        }
        br.close();
    }

 

 

 

posted @ 2019-10-21 20:21  Cool_Yang  阅读(121)  评论(0编辑  收藏  举报