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

土安
• 阅读 13225
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。

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

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
java多种文件复制方式以及效率比较
1.背景java复制文件的方式其实有很多种,可以分为传统的字节流读写复制FileInputStream,FileOutputStream,BufferedInputStream,BufferedOutputStream传统的字符流读写复制FileReader,FileWriter,BufferWriter,Buffered
Wesley13 Wesley13
3年前
NIO入门
1、I/O输入输出,所有的IO都被视作是单个字节的移动,通过stream对象一次移动一个字节。流IO负责把对象转换为字节,然后再转换为对象。NIO提供了二套NIO,一套是针对标准输入输出NIO,另一套是网络编程NIO2、流与块的比较NIO和IO最大的区别是数据打包和传输方式,IO是以流的方式来处理数据,而NIO是以块的方式处理数据。面向块的IO
Wesley13 Wesley13
3年前
IO(输入输出)
IO流有很多种,按照操作数据的不同,可以分为字节流和字符流,按照数组传输方向的不同又可分为输入流和输出流。字节流的输入输出流分别用java.io.InputStream和java.io.OutputStream表示,字符流的输入输出流分别用java.io.Reader和java.io.Writer表示。!(https://oscimg
Wesley13 Wesley13
3年前
Java IO输入输出
学前知道Java的IO使用“流”的概念来表示。IO流涉及到数据源和目的地。流,是从源“流向”目的的数据流。Java将各种数据源和目标之间数据的传输统一抽象为流,通过对流对象的操作来完成I/O功能。输入输出实际都是对内存而言的。数据源可以是键盘、文件、应用程序、鼠标、网络连接。
Wesley13 Wesley13
3年前
Java NIO和IO的区别
IO               NIO面向流           面向缓冲阻塞IO           非阻塞IO无               选择器面向流与面向缓冲JavaNIO和IO之间第一个最大的区别是,IO是面向流的,NIO是面向缓冲区的。JavaIO面向流意味着每次从流中
Wesley13 Wesley13
3年前
Java学习:Stream流式思想
Stream流Java8API添加了一种新的机制——Stream(流)。Stream和IO流不是一回事。流式思想:像生产流水线一样,一个操作接一个操作。使用Stream流的步骤:数据源→转换成流→操作1→操作2→……数据源(source):可以是集合、数组等。St
Wesley13 Wesley13
3年前
Java输入输出流
1.什么是IO   Java.io是大多数面向数据流的输入/输出类的主要软件包。此外,Java也对块传输提供支持,在核心库java.nio中采用的便是块IO。  流IO的好处是简单易用,缺点是效率较低。块IO效率很高,但编程比较复杂。   JavaIO模型 :   Java的IO
Wesley13 Wesley13
3年前
Java IO流
IO流框架!IO框架(https://oscimg.oschina.net/oscnet/d6baa9ffd0adc3ecffd9fef90e48936437f.png)IO流概述IO即输入与输出,Java把不同来源和目标的数据抽象为流,在此基础上对流进行数据操作IO流分类按流向分:
Wesley13 Wesley13
3年前
Java IO之NIO原理解析以及代码演示
一、JavaNIO几个核心部分ChannelBufferSelector二、IO和NIO的区别IO基于流(Streamoriented),而NIO基于Buffer(Bufferoriented)在一般的JavaIO操作中,我们以流式的方式顺序地从
Wesley13 Wesley13
3年前
Java NIO之缓冲区
JavaNIO之Buffer  Java传统的I/O模型是面向单个字节的,它将输入输出抽象为字节流或字符流。这种单个字节的读取或写入模型的效率比较低,而且不符合操作系统的I/O特点。操作系统的IO是面向字节块的,通常是直接从磁盘中读取一块数据到内存或写入一块数据到磁盘。JavaNIO提供了缓冲区来实现字节块的读写。
Wesley13 Wesley13
3年前
Java IO
概述Java中输入、输出的处理通过java.io包下的类和接口来支持,在这个包下主要包括输入、输出两种IO流,每种输入、输出流又可以分为字节流和字符流。字节流以字节为单位来处理输入输出,字符流则以字符为单位。除此之外,Java的IO流使用了一种装饰器设计模式,它将IO流分成底层节点流和上层处理流。节点流用于和底层物理存储节点直接关联,不同