• Java/IO流


    Java/IO流

     

    1、什么是IO?

     IO流就是输入输出的意思,在java中我们的程序中与程序外需要进行数据的传输的时候就需要用到IO流,流是一种抽象的概念,当程序中与程序外进行数据传输的时候,IO流就像是一条管道一样连接着程序外的数据和程序中的数据,而数据在这条管道中就像是流水一样流进程序里,或者流出程序外(这里指的程序外,一般来说是本地,或者网络上),但是值得注意的是,这条管道具有单向流通性,只能流进程序里,或者只能流出程序里。

    2、IO的用法

           1、Inputstream

               输入流:

                   从程序里和程序外建立一条管道,数据从程序外流进程序里。

             //实例化输入流对象,由于Inputstream是一个接口所以采用它的一个实现类来实例化它的对象。传进去的参数为所要读取的文件路径

    InputStream input=new FileInputStream(String name);

              //获取文件可读大小,将文件读进程序里

    byte[] bytes=new byte[input.available()];

    input.read(bytes);

     现在就将文件里的数据读进程序中的bytes数组中了,如果是文本文件的话就可以将数组里的数据构造成字符串输出查看。

    String data=new String(bytes);

    input.close();//关闭流

    System.out.println(data);

    注:读完数据记得将流关闭

    如果是其他文件,可以将文件写出程序外(本地或者网络)。下面将讲解。

              2Outputstream

                  输出流:

                     建立一条数据传输管道,数据从程序里流到程序外(本地或者网络)。

    //使用FileOutputStream实例化对象

    OutputStream output=new FileOutputStream(String NewName);

    //将程序里的数据写出本地,为方便起见,这里讲上面bytes数组里的数据写到本地。

    output.write(bytes);

    output.flush();//刷新一下,确保数据全部写完

    output.close();//关闭流

    通过IO流的使用,就可以使数据在程序里和程序外传输了。

                

     

     

    3、IO拓展

       1、DataOutputStream、DataInputStream

    数据IO流,里面有很多方法可以写各种数据的方法,可以直接写入字节,整型,字符,字符串。。。等等。这个IO是将OutputStream和InputStream里面的方法进行封装的,所以获取这两个流对象的方法需要将OutputStream和InputStream的对象作为参数才能构造出相应的数据IO流。

    下面为示例代码:

    DataOutputStream dataOutput=new DataOutputStream(output);

    dataOutput.write();

    dataOutput.writeInt();

    dataOutput.writeBoolean();

    dataOutput.writeBytes();

       2、BufferedInputStream、BufferedOutputStream

         缓存IO流,适合应用于大文件的读写,当我们用InputStream和OutputStream写一个较大文件时就会发现读写的效率会变得很低,而缓存IO流就可以将这个问题解决,大大提高我们对文件的读写效率。缓存IO流也是将InputStream和OutputStream进行封装出来的,所以先要得到它的对象是也需要将InputStream和OutputStream的对象作为参数传进去。

    下面为示例代码:

     BufferedInputStream Bufferedinput = new    BufferedInputStream( myfileInput );

    BufferedOutputStream Bufferedoutput = new BufferedOutputStream(fileOutput);

    for(int bytes = Bufferedinput.read(); bytes!=-1 ; bytes = Bufferedinput.read()){

          Bufferedoutput.write(bytes);

    }

    Bufferedoutput.flush();//记得刷新流,确保数据全部写出。

    Bufferedinput.close();//关闭流

    Bufferedoutput.close();

      

        

  • 相关阅读:
    Python:给你们安排一波VIP音乐,看我是如何不充会员也能下载的
    最详细Python打包exe教程,并修改图标,30秒搞定!
    Python:20行代码爬取高质量帅哥美女视频,让你一次看个够
    【Python爬虫】招聘网站实战合集第一弹:爬取前程无忧
    Python爬虫:爬点大家都喜欢的东西,比如美女!每天保持心情愉悦!
    Python吃喝玩乐:爬取全城按摩门店,看看有没有你想去的!
    明天就是1024了,Python前来报到!爬取全网M子图片!
    周末福利!用Python爬取美团美食信息,吃货们走起来!
    Python小工具:据说这是搜索文件最快的工具!没有之一!一起感受下......
    简单实现一个流程图(箭头流程图)
  • 原文地址:https://www.cnblogs.com/cyh328863397/p/5951108.html
Copyright © 2020-2023  润新知