Java程序猿之IO(25)

本文介绍了Java中的输入输出(IO)概念,包括其基本定义、不同类型的IO流如字节流和字符流、输入流和输出流,以及节点流和处理流等,并通过一个具体的例子展示了如何使用FileReader类实现文件到程序的数据传输。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这一次我们来到IO--input/output;

1.什么是IO?

在程序中运行的数据从哪里来,到哪里去的流动;

文件----程序:将文档中的数据交给程序,或者程序将数据写到文档中;比如将一本txt格式小说的内容打印到控制台;

网络----程序:比如实现上传下载,就是数据传送到网络另一端,或者从网络另一端得到数据;

程序----程序:两个程序直接进行数据交互;

其实就是两端:一端是程序,另一端是数据源;
 
在上图中,IO就是负责两端链接的管道,当管道打通,数据就可以在管道中流动,实现输入和输出;而管道的两端,一端是程序,另一端就是数据源,可以是文件,可以是网络,也可以是另一个程序;

2.IO的分类?

IO是作为Java中的类存在的,其实说简单点,就是Java给我们提供了各种类别的管道,供编程者来连通程序和数据源;那到底提供了哪些管道,就是所谓IO的分类了;

字节流和字符流:根据管道中流动的数据类型划分;比如水管中流动水,烟囱中流动的是烟;
 
输入流和输出流:根据管道的流动方向来区分;是流向程序本身,接收到外面的流这是输入;是对外,将流发送到数据源这是输出;
 
节点流和处理流:这是使用装饰者模式来进行管道的区分,也是竹迩比较推荐大家学习IO采用的方式;

节点流就是实现连通的管道,真正的数据在里面跑的管道;

处理流是套在节点流上的管道,比如在水管外面加一层保温管道;
 
如果使用节点流和处理流的方式来学习IO,只需要2个步骤:

first找到将程序和数据源连通的管道,打通连接

second在连通管道上套有补充功能的管道,让数据流动能够加速或者保温;

3.IO的简单实现
 
我们来实现图中所示的过程:

  • 文档中的数据发送到程序端,程序段作为接受方--输入流
  • 文档中的数据是字符形式--字符流
  • 选择管道:字符流同时也是输入流--FileReader

具体代码过程如下:
  1. public static void main(String[] args) throws IOException {
  2.                 //管道FileReader找到数据源目标:文档temp.txt
  3.                 FileReader fr = new FileReader("D:\temp.txt");
  4.                 //程序读取文档中的数据要保存到变量c中
  5.                 char[] c = new char[1024];
  6.                 //开始读取:数据比较多,要分多次读取,就像提水到水缸,要接很多桶水
  7.                 while(fr.read(c)!=-1){
  8.                         //将文件中读取到的数据打印到控制台
  9.                         System.out.println(new String(c));
  10.                 }
  11.                 fr.close();
  12.         }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值