IO的使用

一、流(IO)的定义:实现的是两个设备之间的数据传输;

    补充:IO:input、output,设备:网络,磁盘,内存,控制台,键盘,文件

二、流的分类:

    1)根据操作的方式分类:输入流和输出流

    2)根据数据的类型分类:字节流(InputStream,OutputStream)和字符流(Reader,Writer),均以内存为参考

        ①字节流:传输的是字节,可以操作任意类型的数据的传入与传出(图片,音频,文本)

        ②字符流:传输的也试字节,好处是在字节的基础上融入了编码,操作更方便,只能传输文本类型的数据  (文本)

三、使用IO步骤:

    public static void main(String[] args){

    //创建文件

        File file = new File(path);

    //创建Writer子类,并关联文件

        FileWriter fileWriter = new FileWriter(file);

    //调用方法

        fileWriter.writer("wangda");

      //关闭流

        fileWriter.close();

    }

四、文件复制:

    public void copy(){

        FileWriter writer = new FileWriter(复制来的文件);

        FileReader read = new FileReader(复制的源文件);

        int num = 0;

        char[] arr = new char[10];

        while((num=read.read(arr))!=-1){

            writer.writer(arr,0,num);

        }

    read.close();

    writer.close();

    }

五、缓冲流:字符的缓冲流(缓冲区),为了提高读写的能力,但是本身没有读写的能力,如果实现读写必须借助于字符流

        (可以将缓冲流类比于催化剂或高速的小车)

    1)缓冲流的分类:

        ①字符缓冲输入流:BufferedReader

        ②字符缓冲输出流:BufferedWriter

    2)实例:

        public static void main(String[] args){

            FileWriter writer = new FileWriter(path);

            BuffererWriter bWriter = new BufferedWriter(writer);

            bWriter.writer("bingbing");

            bWriter.close();

        }

六、使用缓冲流实现文件的复制:

    public void copy(){

        BufferedReader  read  = new BufferedReader(new FileReader(path));

        BufferedWriter writer = new BufferedWriter(new FileWriter(path));

        String str = null;

        while((str = read.readLine()!=null){

            writer.writer(str);

        }

    read.close();

    writer.close();

    }

七、字节流实例:

    1)文件的写出操作

        public static void fileWriter(){

            OutputStream out = new FileOutputStream(path);

            out.writer("wangda".getBytes());

            out.close();

        }

    2)文件对的读操作一个一个读

        public static void fileRead1(){

            InputStream input = new FileInputStream(path);

            int num = 0;

            while((num=input.read())!=-1){

                System.out.print((char)num);

            }

            input.close();

       }

        3)一次读多个

        public static void fileRead2(){

            InputStream input = new FileInputStream(path);

            int num = 0;

            byte[] data = new byte[10];

            while((num = input.read(data))!=-1){

                System.out.print(new String(arr,0,num);

            }

            input.close();

        }

        4)一次读完所有的字节

        public static void fileRead3(){

            InputStream input = new FileInputStream(path);

            int temp= input.available;

            byte[] data = new byte[temp];

            input.read(data);

            System.out.print(new String(data));

              input.close();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值