Java-------I/O流学习(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shytry/article/details/80225301

一、IO结构图

二、字符流

1、BufferedReader类

    Reader操作会导致对底层字符或者字节流进行相应的读取请求,读取时指定具体的类型读取可以减小开销

    例如:指定其为FileReader或者InputStreamReader

(1)构造方法

    BufferedReader(Reader in)    //创建一个使用默认大小输入缓冲区的缓冲字符输入流

    BufferedReader(Reader in,int sz)  // 创建一个使用指定大小输入缓冲区的缓冲字符输入流

(2)基本方法

  • close()        //关闭该流并释放与之关联的所有资源
  • read()         //读取单个字符  若到流末尾则返回-1  注:返回的是一个ASCII码
  • read(char [] cbuf,int off,int len)          //将字符读入到数组的某一部分。
  • readLine()    // 读取一个文本行  返回读入的字符串
  • skip(long n)      //n:跳过的字符   返回实际跳过的字符数

测试代码

public static void main(String [] args){
        /*BufferReader测试*/
        char [] x={'1','2','3','4','5','6','7','8','9'};
        File file=new File("/home/260198/文档/22/test.txt");
        String temp="";
        try {
            BufferedReader br=new BufferedReader(new FileReader(file),2);
            /*将文件读取到数组x中,起始位置2,长度为5*/
            System.out.println("br:"+br.read(x,2,5));
            /*读取文件跳过3个字符*/
            System.out.println("br:skip "+br.skip(3));
           /*读取单个字符---返回的是ASCII码*/
            int m=br.read();
            System.out.println("br:read "+m);
            /*转换为对应的字符*/
            System.out.println("br:read "+(char)(m));
            for(int i=0;i<x.length;i++){
                System.out.print(x[i]+"  ");
            }
            while((temp=br.readLine())!=null){
                System.out.println(temp);
                Thread.sleep(600);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }}

2、BufferedWriter

将文本写入字符输出流,缓冲各个字符,同样建议指定读入的类型以减小开销

(1)构造方法

BufferedWriter(Writer out)         //创建使用默认大小输出缓冲区的缓冲字符输出流

BufferedWriter(Writer out,int sz)        //创建使用指定大小输出缓冲区的缓冲字符输出流

(2)基本方法

write(String s)        //写入字符  该方法根据参数的不同读入不同的数据类型

newLine()           //写入一个行分隔符-----换行

flush()            //刷新该流的缓冲  注:若不刷新,则不能写入成功

close()     //关闭该流   注:在关闭之前一定要刷新缓冲

猜你喜欢

转载自blog.csdn.net/shytry/article/details/80225301