JAVA IO流

帅比萌擦擦* 提交于 2019-12-16 08:55:59

JAVA中的流分为输入流和输出流。其实还有打印流

      输入流又分字节输入流和字符输入流(InputStream和Reader);

      输出流又分字节输出流和字符输出流(OutputStream和Writer)。

网上找了张流接口的图

输入流:

        字节输入流:

                   InputStream :是所有的输入字节流的父类,它是一个抽象类。

                    FileInputStream:主要用来操作文件输入流。

                                  read():从流中读取1个字节的数据,返回结果是一个int

                     BufferedInputStream:字节缓冲流,提高效率。通常传入一个字节输入流实例化该对象再进行read操作

        字符输入流:

                 Reader:是字符输入流的抽象基类 

                 FileReader :文件字符输入流。

                  BufferedReader:缓冲流,可以把字符输入流进行封装,将数据进行缓冲,提高读取效率

                 InputStreamReader :特殊输入流,转换流,用于字节输入流到字符输入流的转换(解决编码问题)。实例如下:

 public static void main(String[] args) throws IOException {
        //创建字节输入流
        InputStream inputStream=new FileInputStream("D:\\字节缓冲输出流.txt");
        //创建输入转换流
       InputStreamReader inputStreamReader=new InputStreamReader(inputStream,"utf-8");
        inputStreamReader.read();
        int num=0;
        while ((num=inputStreamReader.read())!=-1){
            System.out.print((char)num);
        }
        inputStreamReader.close();

    }

输出流: 

          字节输出流:

                   OutputStream:是字节输出流的基类

                   FileOutputStream:是用于写文件的输出流

                  BufferedOutputStream :像上面那个BufferedInputStream一样,都可以提高效率。实例如下:

             

    public static void main(String[] args) throws IOException {
        OutputStream outputStream=new FileOutputStream("D:\\字节缓冲输出流.txt");
        BufferedOutputStream bufferedOutputStream=new BufferedOutputStream(outputStream);
        bufferedOutputStream.write("缓冲流写入数据".getBytes());
        bufferedOutputStream.flush();//如果流只使用一次,此操作可以省略。close方法也会把数据刷新到文件里
        bufferedOutputStream.close();
    }

         字符输出流: 

                    Writer:是字符输出流的抽象基类,

                     FileWriter:文件输出流

                    BufferedWriter:缓冲流,可以把字符输出流进行封装,将数据进行缓冲,提高读取效率,示例如下:



        InputStream inputStream=new FileInputStream("D:\\字节缓冲输出流.txt");
        BufferedInputStream bufferedInputStream=new BufferedInputStream(inputStream);
        int num=0;
        while ((num=bufferedInputStream.read())!=-1){
            System.out.print(num);
        }
        bufferedInputStream.close();

                    OutputStreamWriter:特殊输入流,转换流,用于字节输出流到字符输出流的转换(解决编码问题)。示例如下:

        //创建字节输出流
        OutputStream outputStream=new FileOutputStream("D:\\字节缓冲输出流.txt");
        //创建转换流
       OutputStreamWriter outputStreamWriter=new OutputStreamWriter(outputStream,"utf-8");
       outputStreamWriter.write("字节输出流转换为字符输出流");
       outputStreamWriter.flush();
       outputStreamWriter.close();

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!