IO流

来源:互联网 发布:淘宝刚上架怎么抢最快 编辑:程序博客网 时间:2024/05/17 21:46

IO流

概念

IO用于在设备间进行数据传输的操作

分类

流向

  • 输入流 读取数据
  • 输出流 写出数据

数据类型

  • 字节流

        |--字节输入流        InputStream            int read():一次读取一个字节            int read(byte[] bys):一次读取一个字节数组            |--FileInputStream            |--BufferedInputStream    |--字节输出流        OutputStream            void write(int by):一次写一个字节            void write(byte[] bys,int index,int len):一次写一个字节数组的一部分            |--FileOutputStream            |--BufferedOutputStream    字节输出流(OutputSteam)        FileOutputStream        BufferedOutputStream
  • 字符流

    1. 字节流操作中文数据不是特别的方便,所以就出现了转换流。

    转换流的作用就是把字节流转换字符流来使用。

    1. 转换流其实是一个字符流

    字符流 = 字节流 + 编码表

    1. 编码表

    A:就是由字符和对应的数值组成的一张表

    B:常见的编码表

        ASCII    ISO-8859-1    GB2312    GBK    GB18030    UTF-8

    C:字符串中的编码问题

    编码
    String -- byte[]
    解码
    byte[] -- String

    |--字符输入流    Reader        int read():一次读取一个字符        int read(char[] chs):一次读取一个字符数组        |--InputStreamReader            |--FileReader        |--BufferedReader                String readLine():一次读取一个字符串|--字符输出流    Writer        void write(int ch):一次写一个字符        void write(char[] chs,int index,int len):一次写一个字符数组的一部分        |--OutputStreamWriter            |--FileWriter        |--BufferedWriter            void newLine():写一个换行符            void write(String line):一次写一个字符串

注意

A:如果我们没有明确说明按照什么分,默认数据类型分B:除非文件用window自带的记事本打开我拉能够读懂,才采用字符流,否则建议使用字节流

FileInputStream 读取数据

操作步骤

  • 创建字节输入流对象
  • 调用read()对象
  • 释放资源

代码体现

    //方法1    FileInputStream fis=new FileInputSteam("d:\\a.txt");    int by=0;    while((by=fis.read())!=-1){        System.out.print((char)by);    }    //方法2    byte[] bys= new byte[1024];    int len=0;    while((len=fis.read(bys))!=-1){        System.out.print(new String(bys,0,len));    }

FileOutputStream写出数据

操作步骤

  • 创建字节输出流对象
  • 调用write()方法
  • 释放资源

代码体现

    FileOutputStream fos=new FileOutputStream("d:\\a.txt");    fos.write("hello",getBytes());    fos.close();

IO流中的编码问题

  • OutputStreamWriter

        OutputStreamWriter(OutputStream os):默认编码,GBK    OutputStreamWriter(OutputStream os,String charsetName):指定编码。
  • InputStreamReader

        InputStreamReader(InputStream is):默认编码,GBK    InputStreamReader(InputStream is,String charsetName):指定编码
  • 编码问题其实很简单

        编码只要一致即可

    • IO流
      • 概念
      • 分类
        • 流向
        • 数据类型
      • 注意
      • FileInputStream 读取数据
        • 操作步骤
        • 代码体现
      • FileOutputStream写出数据
        • 操作步骤
        • 代码体现
      • IO流中的编码问题

0 0
原创粉丝点击