zoukankan      html  css  js  c++  java
  • 字节输入流:io包中的InputStream为所有字节输入流的父类。

    字节输入流:io包中的InputStream为所有字节输入流的父类。

    Int read();读入一个字节(每次一个);

    可先使用new  byte[]=数组,调用read(byte[] b)

    read (byte[])返回值可以表示有效数;read (byte[])返回值为-1表示结束。

     

    字节输出流:io包中的OutputStream位所有字节输入流的父类。

    Write和输入流中的read相对应。

     

    在流中close()方法由程序员控制。因为输入输出流已经超越了VM的边界,所以有时可能无法回收资源。

    原则:凡是跨出虚拟机边界的资源都要求程序员自己关闭,不要指望垃圾回收。

    以Stream结尾的类都是字节流。

    如果构造FileOutputStream的同时磁盘会建立一个文件。如果创建的文件与磁盘上已有的文件名重名,就会发生覆盖。

    用FileOutputStream中的boolean,则视,添加情况,将数据覆盖重名文件还是将输入内容放在文件的后面。(编写程序验证)

     

    DataOutputStream:输入数据的类型。

    因为每中数据类型的不同,所以可能会输出错误。

    所有对于:DataOutputStream

              DataInputStream

              两者的输入顺序必须一致。

    过滤流:

     bufferedOutputStream

     bufferedInputStream

    用于给节点流增加一个缓冲的功能。
    在VM的内部建立一个缓冲区,数据先写入缓冲区,等到缓冲区的数据满了之后再一次性写出,效率很高。

    使用带缓冲区的输入输出流的速度会大幅提高,缓冲区越大,效率越高。(这是典型的牺牲空间换时间)

    切记:使用带缓冲区的流,如果数据数据输入完毕,使用flush方法将缓冲区中的内容一次性写入到外部数据源。用close()也可以达到相同的效果,因为每次close都会使用flush。一定要注意关闭外部的过滤流。

     

    (非重点)管道流:也是一种节点流,用于给两个线程交换数据。

    PipedOutputStream

    PipedInputStream

    输出流:connect(输入流)

     

    RondomAccessFile类允许随机访问文件

    GetFilepoint()可以知道文件中的指针位置,使用seek()定位。

    Mode(“r”:随机读;”w”:随机写;”rw”:随机读写)

    练习:写一个类AJAVA A file1 file2

    file1要求是系统中已经存在的文件。File2是还没有存在的文件。

    执行完这个命令,那么file2就是file1中的内容。

     

    字符流:readerwrite只能输纯文本文件。

    FileReader类:字符文件的输出

     

    字节流与字符流的区别:

    字节流的字符编码:

    字符编码把字符转换成数字存储到计算机中,按ASCii将字母映射为整数。

    把数字从计算机转换成相应的字符的过程称为解码。

    编码方式的分类:

    ASCII(数字、英文):1个字符占一个字节(所有的编码集都兼容ASCII

    ISO8859-1(欧洲):1个字符占一个字节

    GB-2312/GBK1个字符占两个字节

    Unicode: 1个字符占两个字节(网络传输速度慢)

    UTF-8:变长字节,对于英文一个字节,对于汉字两个或三个字节。

     

    原则:保证编解码方式的统一,才能不至于出现错误。

    Io包的InputStreamread称为从字节流到字符流的桥转换类。这个类可以设定字符转换方式。

    OutputStreamred:字符到字节

    Bufferreadreadline()使得字符输入更加方便。

    I/O流中,所有输入方法都是阻塞方法。

    Bufferwrite给输出字符加缓冲,因为它的方法很少,所以使用父类printwrite,它可以使用字节流对象,而且方法很多。

     

    练习:做一个记事本

    swing/JfileChoose: getSelect file()

    InputStreeamReader:把字节变为字符

    JAVA中对字符串长无限制  bufferedReaderir

  • 相关阅读:
    百度云满速下载原理与方法
    新版知乎登录之post请求
    requests发送post请求的一些疑点
    Python3实现ICMP远控后门(下)之“Boss”出场
    Python3实现ICMP远控后门(中)之“嗅探”黑科技
    Python3实现ICMP远控后门(上)_补充篇
    Python3实现ICMP远控后门(上)
    反射-Class
    希尔排序(java)
    插入排序(java)
  • 原文地址:https://www.cnblogs.com/borter/p/10744124.html
Copyright © 2011-2022 走看看