千家信息网

10.1-全栈Java笔记:最全面的IO技术(一)

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,IO技术对于任何程序设计语言而言,输入输出(Input/Output)系统都是非常核心的功能。程序运行需要数据,数据的获取往往需要跟外部系统进行通信,外部系统可能是文件、数据库、其他程序、网络、IO设
千家信息网最后更新 2026年11月03日10.1-全栈Java笔记:最全面的IO技术(一)

IO技术

对于任何程序设计语言而言,输入输出(Input/Output)系统都是非常核心的功能。程序运行需要数据,数据的获取往往需要跟外部系统进行通信,外部系统可能是文件、数据库、其他程序、网络、IO设备等等。

外部系统比较复杂多变,那么我们有必要通过某种手段进行抽象、屏蔽外部的差异,从而实现更加便捷的编程。

输入(Input)指的是:可以让程序从外部系统获得数据(核心含义是"读",读取外部数据)。常见的应用:

1) 读取硬盘上的文件内容到程序。例如:播放器打开一个视频文件、word打开一个doc文件。

2) 读取网络上某个位置内容到程序。例如:浏览器中输入网址后,打开该网址对应的网页内容;下载网络上某个网址的文件。

3) 读取数据库系统的数据到程序。

4) 读取某些硬件系统数据到程序。例如:车载电脑读取雷达扫描信息到程序;温控系统

输出(Output)指的是:程序输出数据给外部系统从而可以操作外部系统(核心含义是"写",将数据写出到外部系统)。常见的应用有:

5) 将数据写到硬盘中。 例如:我们编辑完一个word文档后,将内容写到硬盘上进行保存。

6) 将数据写到数据库系统中。例如:我们注册一个网站会员,实际就是后台程序向数据库中写入一条记录。

7)将数据写到某些硬件系统中。例如:×××系统导航程序将新的路径输出到飞控子系统,飞控子系统根据数据修正飞行路径。

java.io包为我们提供了相关的API,实现了对所有外部系统的输入输出操作,这就是我们这章所要学习的技术。

基本概念和IO入门

数据源

数据源data source,提供数据的原始媒介。

常见的:数据库、文件、其他程序、内存、网络连接、IO设备。

数据源分为:源设备、目标设备。

源设备:为程序提供数据,一般对应输入流。

目标设备:程序数据的目的地,一般对应输出流。

流的概念

数据源就像水箱,流(stream)就像水管中流着的水流,程序就是我们最终的用户。 流是一个抽象、动态的概念,是一连串连续动态的数据集合。

图1 流与源数据源和目标数据源之间的关系

第一个简单的IO流程序及深入

当程序需要读取数据源的数据时,就会通过IO流对象开启一个通向数据源的流,通过这个IO流对象相关方法可以顺序读取流中的数据。

【示例1】 通过流对象从一个文件中读取数据(只用于测试,不规范的写法)

import java.io.*;

public class Demo01 {

public static void main(String[] args) {

try {

FileInputStream fis = new FileInputStream("d:/a.txt"); //文件内容是:abc

int s1 = fis.read(); //打印输入字符a对应的ascii码值97

int s2 = fis.read(); //打印输入字符a对应的ascii码值98

int s3 = fis.read(); //打印输入字符a对应的ascii码值99

int s4 = fis.read(); //由于文件内容已经读取完毕,返回-1

System.out.println(s1);

System.out.println(s2);

System.out.println(s3);

System.out.println(s4);

fis.close();

//流对象使用完,必须关闭!不然,总占用系统资源,最终会造成系统崩溃!

} catch (Exception e) {

e.printStackTrace();

}

}

}

【示例2】通过流对象从一个文件中读取数据(经典代码,一定要掌握)

import java.io.*;

public class Demo02 {

public static void main(String[] args) {

FileInputStream fis =null;

try {

fis = new FileInputStream("d:/a.txt"); //内容是:abc

StringBuilder sb = new StringBuilder();

int temp = 0;

while((temp=fis.read())!=-1){

sb.append((char)temp);

}

System.out.println(sb);

} catch (Exception e) {

e.printStackTrace();

}finally{

try{

if(fis!=null){

fis.close();

//流对象,使用完后必须关闭!!这种写法,保证了即使遇到异常情况,也会关闭流对象。

}

}catch(IOException e){

e.printStackTrace();

}

}

}

}

老鸟建议:

如上代码是一段非常典型的IO流代码,其他流对象的使用也基本是同样的模式!

本节我们先讲到这里,下节我们继续聊~~





「全栈Java笔记」是一部能帮大家从零到一成长为全栈Java工程师系列笔记。笔者江湖人称 Mr. G,10年Java研发经验,曾在神州数码、航天院某所研发中心从事软件设计及研发工作,从小白逐渐做到工程师、高级工程师、架构师。精通Java平台软件开发,精通JAVAEE,熟悉各种流行开发框架。


笔记包含从浅入深的六大部分:

A-Java入门阶段

B-数据库从入门到精通

C-手刃移动前端和Web前端

D-J2EE从了解到实战

E-Java高级框架精解

F-Linux和Hadoop




数据 程序 系统 文件 对象 数据源 输入 内容 数据库 设备 输出 网络 笔记 代码 字符 就是 工程师 常见 核心 概念 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广东万易互联网科技有限公司惠州分公司 互联网科技产业 美国互联网保险保险科技 互联网金融监管科技数据 科技与互联网 深圳互联网科技公司 艾特科技互联网 九亚互联网科技 互联网养老 桔豆科技 华脉科技工业互联网产品 博兴的互联网电子科技公司 汽车互联网创新科技园 南山科技园互联网公司有哪些 昭通互联网科技选哪家 徐州市互联网科技有限公司 互联网方面的科技前沿 东营紫格互联网科技 广州梦谷互联网科技有限公司领导 银川新华互联网科技学校是国营吗 互联网科技创新创业项目 互联网黑科技 为想互联网科技怎么样 极限挑战互联网科技 沃里互联网科技 深圳市优智互联网科技有限公司 深圳育鹏互联网科技有限公司招聘 陕西九四连强互联网科技有限公司 第三届互联网大会安防黑科技 网互联网络科技 互联网科技创业有什么好项目
0