(五)java中的常用IO流

java中的常用IO流

IO流.png

一. 输入流(读取)

  1. 字节输入流:

    • InputStream 字节输入流的抽象基类

    • 字节文件读取流:FileInputStream 将文件连接到一个字节输入流FileInputStream

      构造方法: FileInputStream(File f)

      File f = new File("test.md");
      FileInputStream fis = new FileInputStream(f);  //以字节流形式读取文件f
      int i = 0;
      // 一次读取一个字节
      while ((i = fis.read()) != -1) {
          System.out.print((char) i + " ");   // A B C D 
      }
      fis.close();
      
    • 字节缓冲输入流: BufferedInputStream 将输入字节流放至缓冲区的流,提高读取效率

      构造方法:BufferedInputStream (InputStream in)

  1. 字符输入流:

    • Reader 字符输入流的抽象基类

    • 字符转换流:InputStreamReader 字节流转字符流,将输入的字节流转化为字符流

      构造方法: InputStreamReader (InputStream in)

    • 字符文件读取流:FileReader 将文件连接到一个字符输入流,采用默认字符编码

      构造方法: FileReader(File f)

    • 字符缓冲流:BufferedReader 从输入字符流中读取文本,缓冲各个字符,从而高效读取

      构造方法: BufferedReader(Reader in)

      特有方法: String readLine() //读取一个文本行,遇到'\n'结束读取,返回该行字符串,末尾返回null

      // 从控制台获取输入  字节流 经InputStreamReader转换流 转化为字符流, 再通过BufferedReader来读取
      BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
      enterInt = Integer.parseInt(br.readLine()); //读取int整数
      enterDouble = Double.parseDouble(br.readLine()); //读取double浮点数
      br.close(); //一定记得关闭Stream
      

二. 输出流 (写入)

  1. 字节写入流:

    • OutputStream 字节输出流的抽象基类,所有输出字节流的超类

      常用方法:write(byte[] b) 将byte数组写入此输出流

      常用方法:write(int b) 将指定的字节写入此输入流

      常用方法:write(byte[] b, int off, int len) 将byte[]数组偏移off的字节开始的len个字节写入此输入流

    • 字节文件写入流:FileOutputStream 将字节流形式的数据写入到文件中

      构造方法:FileOutputStream (File f)

      // 创建FileOutputStream流,用于将字节流写入文件
      FileOutputStream fos = new FileOutputStream(new File("demo.txt"));
      // 写入数据,常用方法: write(byte[] b)
      fos.write("ABCD".getBytes());
      // 关闭流
      fos.close();
      
    • 字节缓冲输出流:BufferedOutputStream 将即将输出的字节放入缓冲区

      构造方法: BufferedOutputStream(OutputStream out)

      // 创建字节缓冲输出流,以将数据放在指定的底层输出流(缓冲区)
      BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("demo.txt"));
      // 写入内容
      bos.write("Hello World\n".getBytes());
      // 写入换行符
      bos.write("\r\n".getBytes());
      // 刷新此缓冲的输出流
      bos.flush();
      // 关闭流
      bos.close();
      
  2. 字符写入流:

    • Writer 写入字符流的抽象基类

      常用方法:write(char[] chuf) 将char数组写入到输出流

      常用方法:write(int c) 将单个字符char写入输出流

      常用方法:write(String str) 将字符串写入到输出流

      常用方法:append(String str) 同write作用相同,但是他的返回值是一个writer,故可以多次连续使用

    • 字符转换流:OutputStreamWriter 将字节流转化为字符流来输出

      构造方法:OutputStreamWriter (OutputStream os)

    • 字符文件写入流: FileWriter 将字符写入进文本的写入流

      构造方法:FileWriter (File f)

    • 缓冲字符写入流: BufferedWriter 将即将被写入的字符数据放入缓冲区,注意关闭缓冲流

      构造方法:BufferedWriter (Writer w)

      特有方法:newLine() 写入一个换行符

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、IO流 1.1、概述 之前学习的File类它只能操作文件或文件夹,并不能去操作文件中的数据。真正保存数据的是文...
    Villain丶Cc阅读 7,539评论 0 5
  • 五、IO流 1、IO流概述 (1)用来处理设备(硬盘,控制台,内存)间的数据。(2)java中对数据的操作都是通过...
    佘大将军阅读 3,486评论 0 0
  • 1 IONo18 1.1IO框架 【 IO:Input Output 在程序运行的过程中,可能需要对一些设备进...
    征程_Journey阅读 4,513评论 0 1
  • [TOC] IO流 IO流概述及其分类 IO概念 IO流用来处理设备之间的数据传输,Java对数据的操作是通过流的...
    wh_阅读 11,991评论 0 22
  • IO简单概述 IO解决问题 : 解决设备与设备之间的数据传输问题(硬盘 -> 内存 内存 -> 硬盘) 读和写文...
    奋斗的老王阅读 8,741评论 0 53