Java IO 输入输出流(精简版)

1,什么是 Java IO ?

Java IO 就是将一组有顺序的、单向的数据集合进行输入或者输出,这样的传输形式类似于水流的形式,因此也被称作“流”。总的来说 Java 的 IO 形式又可分为两种,一种是字节流、另一种是字符流,一般情况下,字节流和字符流又可以进行相互转换。

2,实现最简单的输入输出流
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
  
  public static void main(String[] args) {
    
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String dataLine = null;
    do {
      try {
        dataLine = br.readLine();
        System.out.println("数据:" + dataLine);
      } catch (IOException e) {
        System.err.println("发生异常:" + e.getMessage());
      }
    } while (!dataLine.equals("Q"));
  }

}

使用 System.in 进行控制台输入,使用输入流读取每行字符串然后打印。在 java5 之后的版本也可以直接使用 Scanner scan = new Scanner(System.in); 进行控制台数据接收。而上述代码中的 System.out.println(“数据:” + dataLine); 其实也是将数据进行输出,也可以看作是输出流的一种。

3,文件流的输入输出

(1)输入流读取文件

首先,在 C 盘下面创建一个文件 data.txt,其次,使用输入流将其读取后输出到控制台即可。

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

public class Main {
  
  public static void main(String[] args) {
    try {
            // 文件输入
      InputStream inputStream = new FileInputStream("C:/data.txt");
            // 字符长度
      int length = inputStream.available();
            // 遍历读取字符
      for (int i = 0; i < length; i++) {
        char ch = (char) inputStream.read();
        System.out.println("数据:" + ch);
      }
    } catch (IOException e) {
            // 异常处理
      System.err.println("发生异常:" + e.getMessage());
    }
  }
}

(2)输出流写入文件

首先,在 C 盘下面创建一个文件 data.txt,其次,使用输出流获取文件后将其写入即可。

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

public class Main {
  
  public static void main(String[] args) {
        // 字节数组
    byte [] byteData = {'w','c','e','d','u'};
    try {
            // 文件输出
      OutputStream outputStream = new FileOutputStream("C:/data.txt");
      int i = 0;
            // 遍历字节数组,写入文件
      while (i < byteData.length) {
        outputStream.write(byteData[i]);
        i++;
      }
    } catch (FileNotFoundException e) {
            // 处理异常1
      e.printStackTrace();
    } catch (IOException e) {
            // 处理异常2
      e.printStackTrace();
    }
  }
}

当然,流的使用形式非常多,上述代码块只是比较常见的形式,有兴趣的童鞋还可以继续深究。

欢迎关注 “老王说编程“,每天进步一点点,您的每一个点赞、在看、分享都是在致力于减少 “攻城狮” 产出的 BUG。

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Python 集中营

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值