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。

在这里插入图片描述


Python集中营
34 声望10 粉丝