javaIO编程

安传输内容分类

  • 字节流(结尾都是Stream)
    • 读到一个字节就返回一个字节
    • 用来处理所有类型数据,如:图片,MP3,AVI视频文件
  • 字符流(结尾都是Reader或Writer)
    • 读到一个或多个字节(在UTF-8码表中是3个字节)时,先去查指定的编码表,将查到的字符返回
    • 只能处理字符数据

安传输方向分类

  • 输入流
  • 输出流

安功能分类

  • 节点流
    有读取和写入的介质,是真正的流(流的类名称都用介质打头)

    介质字节流字符流
    File(文件)FileInputStream/FileOutputSreamFileReader/FileWriter
    Memory ArrayByteArrayInputStream/ByteArrayOutputSreamCharArrayReader/CharArrayWriter
    Memory StringXXXXStringReader/StringWriter
    Pipe(管道)PipedInputSream/PipedOutputSreamPipedReader/PipedWriter
  • 处理流

    • 特点
      • 处理流是对一个已存在的流的封装和连接(两个流对接)
      • 构造方法参数总要传入一个已有的流对象
    • 分类
      • 缓冲流(BufferedInPutStream/BufferedOutPutStream和BufferedWriter/BufferedReader)
        可以提高对流的操作效率

          BufferedWriter bufw=new BufferedWriter(new FileWriter("buf.txt"));
          BufferedReader bufr=new BufferedReader(new FileReader("buf.txt"));
        
      • 转换流(InputStreamReader/OutputStreamWriter)
        它是字节流和字符流之间的桥梁

          InputStreamReader(InputStream,String charSet);
          OutputStreamwriter(OutputStream,String charSet);
        
      • 数据流(DataInputStream/DataOutputStream)
        可以方便对一些基本类型数据进行直接的存储和读取(通常只要操作基本类型的数据就需要数据流)

          DataOutputStream dos=new DataOutputStream(new BufferedOutputStream(new FileOutputStream("data.txt")));
          String str="你好hi";
          dos.writeUTF(str);//按UTF-8格式写入
          dos.writeChars(str);//按字符写入
          dos.writeBytes(str);//将整个字符串按字节写入
        
      • 打印流(PrintStream/PrintWriter)
        System.out对应的类型就是PrintStream

      • 对象流(ObjectInputStream/ObjectOutputStream)
        用来把对象作为一个整体进行存取

          transient double score;//transient关键字的作用是,对象序列化时该属性无效
          void writeObject(Object);//被写入的对象必须实现一个接口:Serializable,否则就会抛出:NotSerializableException
        
  • RandomAccessFile类

    • 该对象并不是流体系中的一员
    • 它封装了字节流,同时还封装了一个缓冲区(字符数组),通过内部的指针来操作字符数组中的数据
    • 该对象只能操作文件
    • 既可以对文件进行读操作,也能进行写操
    • 可以用于多线程下载或多个线程同时写数据到文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值