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。

在这里插入图片描述

31 声望
8 粉丝
0 条评论
推荐阅读
python打包技巧:彻底解决pyinstaller打包exe文件太大的问题
之前也写过很多的小工具,粉丝朋友们应该都知道在本公众号内回复任意关键字即可获取以往的工具源码或是exe可执行应用。【阅读全文】因为以往发过的小工具基本都是几十MB大小的exe应用,也就没有在意exe太大给大家...

Python集中营阅读 818

从零搭建 Node.js 企业级 Web 服务器(零):静态服务
过去 5 年,我前后在菜鸟网络和蚂蚁金服做开发工作,一方面支撑业务团队开发各类业务系统,另一方面在自己的技术团队做基础技术建设。期间借着 Node.js 的锋芒做了不少 Web 系统,有的至今生气蓬勃、有的早已夭折...

乌柏木143阅读 11.9k评论 10

从零搭建 Node.js 企业级 Web 服务器(十五):总结与展望
总结截止到本章 “从零搭建 Node.js 企业级 Web 服务器” 主题共计 16 章内容就更新完毕了,回顾第零章曾写道:搭建一个 Node.js 企业级 Web 服务器并非难事,只是必须做好几个关键事项这几件必须做好的关键事项就...

乌柏木60阅读 6k评论 16

再也不学AJAX了!(二)使用AJAX ① XMLHttpRequest
「再也不学 AJAX 了」是一个以 AJAX 为主题的系列文章,希望读者通过阅读本系列文章,能够对 AJAX 技术有更加深入的认识和理解,从此能够再也不用专门学习 AJAX。本篇文章为该系列的第二篇,最近更新于 2023 年 1...

libinfs39阅读 6.2k评论 12

封面图
从零搭建 Node.js 企业级 Web 服务器(一):接口与分层
分层规范从本章起,正式进入企业级 Web 服务器核心内容。通常,一块完整的业务逻辑是由视图层、控制层、服务层、模型层共同定义与实现的,如下图:从上至下,抽象层次逐渐加深。从下至上,业务细节逐渐清晰。视图...

乌柏木39阅读 7.1k评论 6

【关于Javascript】--- 正则表达式篇
基础知识一、元字符 {代码...} 二、量词 {代码...} 三、集合 字符类 {代码...} 四、分支 {代码...} 五、边界 开始结束 {代码...} 六、修饰符 {代码...} 七、贪婪模式和非贪婪模式js默认贪婪模式即最大可能的匹配...

Jerry35阅读 2.9k

从零搭建 Node.js 企业级 Web 服务器(二):校验
校验就是对输入条件的约束,避免无效的输入引起异常。Web 系统的用户输入主要为编辑与提交各类表单,一方面校验要做在编辑表单字段与提交的时候,另一方面接收表单的接口也要做足校验行为,通过前后端共同控制输...

乌柏木32阅读 6.1k评论 9

31 声望
8 粉丝
宣传栏