zoukankan      html  css  js  c++  java
  • java基础3之IO

    流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络连接。类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流。

    流的种类

    字符流 = 字节流 + 解码
    还有其他流

    字符流 Reader/Writer

    如果读写的都是 字符数据,这时候我们就使用字符流char数组。 以16位的Unicode码表示的字符为基本单位。
    FileReader/FileWriter:文件字符流,用于文写操作默认是使用的是 gbk 编码本文件的读
    BufferedReader/BufferedWriter:加缓冲区的字符流,用于提高效率(内部其实就是维护了一个 8192 个长度的字符数组)

    字节流 InputStream/OutputStream

    读取到数据 不需要经过编码或者解码的情况情况下这时候使用字节流byte数组。比如:图片数据。
    FileInputStream/FileOutputStream:文件字节流,用于文件的读写操作
    BufferedInputStream/BufferedFileOutputStream:加缓冲区的字节流,用于提高效率(内部其实也是维护了一个 8kb 的字节数组而已)

    其他常用流

    转换流 InputStreamReader/OutputStreamWriter
    包装流ObjectInputStream/ObjectOutputStream

    字符流与字节流之间的转换

    通过byte[]和String来关联。

    1. 字节变字符流(指定解码方法,否则按虚拟机默认的,可能乱码)
      String str = new String(byte[] bytes, String charsetName);
      也可以使用转换流InputStreamReader ,它是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。
    2. 字符变字节流
    byte[] data = str.getBytes("UTF-8");```
    字节的解码,与字符的编码要一致
  • 相关阅读:
    JS中解析JSON。
    对不同浏览器实现图片旋转。
    FF和IE内容不透明,字体透明。
    C# 通过身份证查询出生日期
    C# v3微信 access token 过期处理的问题
    C# 微信v3退款
    codesmith生成java类
    IOS调用WCF服务,WCF服务器进行上传图片
    安装VS 2013遇到的问题,及解决方案
    接口,个人理解
  • 原文地址:https://www.cnblogs.com/xiaobingzi/p/10629546.html
Copyright © 2011-2022 走看看