• 乱七八糟的流


    由于工作用到了各种流,所以就查阅资料总结一下,查询资料需谨慎啊,有的有错误,多看看。

    首先了解两个概念:字节流和字符流。

    字节流--传输过程中,传输数据的最基本单位是字节的流;

    字符流--传输过程中,传输数据的最基本单位是字符的流。

    字符流顾名思义读出来的都是字符,所以只用来读文本文件,其他非文件的二进制文件当然要用字节流来读了,最常见的就是一些流媒体文件,都是直接读取的字节。


    写了一堆然后删掉了,直接贴上一篇链接,详细的雅痞,直接看就行了。

    原文:https://www.cnblogs.com/progor/p/9357676.html

    另外附加几句话为了理解(复制来的):

    (1) InputStream  inputstream  = new  FileInputStream("fileName");//然后对InputStream 进行读操作,为啥是读呢?可以把内存当作主体,

    这是某个网友说的,你从硬盘往内存里Input 东西就是读取数据咯。 另外这里因为FileInputStream继承InputStream 类//所以可以这样用。

    (2)字符流顾名思义读出来的都是字符,所以只用来读文本文件,其他非文件的二进制文件当然要用字节流来读道了,最常见的就是一些流媒体文件,

    都是直接读取的字节啊。至于回为什么提供2种流,当然是为了使用方便罗,你硬要把字符拆成字节来读,然后自己再写代码解析出字符也答是可以的,反过来也一样。

    (3)工作中的一个例子:

     1 String text = "";
     4              String encoding="UTF-8";
     5              File file_txt = new File(path);
     6              if(file_txt.isFile() && file_txt.exists()){ //判断文件是否存在
     7                  InputStreamReader read = new InputStreamReader(//字节流转换为字符流
     8                  new FileInputStream(file_txt),encoding);//考虑到编码格式
     9                  BufferedReader bufferedReader = new BufferedReader(read);//将数据进行缓冲,提高效率
    10                  //BufferedReader也可以叫缓冲流,缓冲到一块特殊的内存中,这样就不用读一下写一下了,可以直接读取一部分到内存中再写
    11                  text = bufferedReader.readLine();
    12                  read.close();
    13                  bufferedReader.close();
    14              }

      或者:
     InputStream file = new FileInputStream("文件名");
     BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(file));

      

    乾坤未定,你我皆是黑马
  • 相关阅读:
    欠拟合与过拟合概念和局部加权回归
    ActionEvent之TextField
    事件模型的介绍与Button的ActionListener
    布局管理器
    GUI初步和frame&panel
    生产者消费者问题
    线程同步
    [BZOJ 1407] Savage
    [BZOJ 1145] 图腾totem
    [BZOJ 1150] 数据备份
  • 原文地址:https://www.cnblogs.com/liuqijia/p/12713721.html
Copyright © 2020-2023  润新知