Java I/0 总体框架图

本文详细介绍了Java中的IO流,包括按方向、数据单位和功能的不同分类,并解释了节点流和处理流的区别。此外还介绍了Java中常用的IO流,如字节输入流、字节输出流等。

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

       本文转自http://blog.youkuaiyun.com/llhhyy1989/article/details/7388059,做部分整理。


       Java中的流,可以从不同的角度进行分类。

       按照数据流的方向不同可以分为:输入流和输出流。

       按照处理数据单位不同可以分为:字节流和字符流。

       按照实现功能不同可以分为:节点流和处理流。

 

      输出流:

      

       输入流:

       

       因此输入和输出都是从程序的角度来说的。

       字节流:一次读入或读出是8位二进制。

       字符流:一次读入或读出是16位二进制。

       字节流和字符流的原理是相同的,只不过处理的单位不同而已。后缀是Stream是字节流,而后缀是ReaderWriter是字符流。

 

       节点流:直接与数据源相连,读入或读出。

   

       直接使用节点流,读写不方便,为了更快的读写文件,才有了处理流。

       处理流:与节点流一块使用,在节点流的基础上,再套接一层,套接在节点流上的就是处理流。

      

       Jdk提供的流继承了四大类:InputStream(字节输入流)OutputStream(字节输出流),Reader(字符输入流),Writer(字符输出流)。

 

        以下是javaio中常用的流。

        

 

        字节输入流:

       


        字节输出流:

       


        字符输入流:

       


         字符输出流:

       

       

       简单介绍其上图:

       对文件进行操作:FileInputStream(字节输入流),FileOutputStream(字节输出流),FileReader(字符输入流),FileWriter(字符输出流)

       对管道进行操作:PipedInputStream(字节输入流),PipedOutStream(字节输出流),PipedReader(字符输入流),PipedWriter(字符输出流)

    PipedInputStream的一个实例要和PipedOutputStream的一个实例共同使用,共同完成管道的读取写入操作。主要用于线程操作。

       字节/字符数组:ByteArrayInputStreamByteArrayOutputStreamCharArrayReaderCharArrayWriter是在内存中开辟了一个字节或字符数组。

    Buffered缓冲流::BufferedInputStreamBufferedOutputStreamBufferedReader,BufferedWriter,是带缓冲区的处理流,缓冲区的作用的主要目的是:避免每次和硬盘打交道,提高数据访问的效率。

       转化流:InputStreamReader/OutputStreamWriter,把字节转化成字符。

       数据流:DataInputStreamDataOutputStream

       因为平时若是我们输出一个8个字节的long类型或4个字节的float类型,那怎么办呢?可以一个字节一个字节输出,也可以把转换成字符串输出,但是这样转换费时间,若是直接输出该多好啊,因此这个数据流就解决了我们输出数据类型的困难。数据流可以直接输出float类型或long类型,提高了数据读写的效率。

       打印流:printStreamprintWriter,一般是打印到控制台,可以进行控制打印的地方。

       对象流:ObjectInputStreamObjectOutputStream,把封装的对象直接输出,而不是一个个在转换成字符串再输出。

       序列化流:SequenceInputStream




### 课程设计系统总体架构图 #### 架构概述 在构建课程设计系统的总体框架时,需考虑多个层面的设计以确保系统的高效性和可维护性。该系统不仅涉及业务需求的理解与实现,还需关注数据处理、技术选型等方面的内容[^1]。 #### 架构层次划分 为了清晰展示课程设计系统的结构及其工作原理,通常会采用分层的方式来进行描述: - **业务架构** 描述教育机构内部运作模式以及教学活动开展方式等高层次概念模型。通过定义不同角色(教师、学生)、职责范围和服务流程来体现整个教务管理体系的核心要素。 - **产品架构** 明确具体的产品形态及用户体验路径规划,比如在线学习平台的功能模块布局、交互界面设计原则等,旨在为用户提供便捷高效的使用体验。 - **系统架构** 关注于支撑上述两者的底层基础设施建设情况,包括但不限于服务器配置方案、网络拓扑结构安排等内容;同时也涵盖了对于数据库管理系统的选择依据说明等问题[^2]。 - **数据架构** 设计合理的数据存储策略,如关系型数据库表结构设计、非结构化文件保存机制设定等,保障各类信息资源的有效管理和利用效率最大化。 - **技术架构** 阐述所选用的技术栈组合详情,例如前端开发框架Vue.js/React.js, 后端编程语言Python/Django 或 Java/Spring Boot 的理由阐述,还有中间件Redis/Kafka的应用场景介绍等[^3]。 - **应用架构** 展现各个独立应用程序之间如何协作完成特定任务的过程示意,像Web客户端请求API接口获取所需资料并渲染页面显示给最终用户的全过程模拟。 - **功能架构** 列举出本项目具备的主要特性列表,诸如用户注册登录验证、课程创建编辑发布等功能点的具体实现思路和技术难点克服措施分享。 - **信息架构** 组织网站或APP内所有内容板块之间的关联逻辑关系图表绘制,便于访客快速定位目标位置找到感兴趣的信息条目。 ```mermaid graph TD; A[课程设计系统] --> B(业务架构); A --> C(产品架构); A --> D(系统架构); A --> E(数据架构); A --> F(技术架构); A --> G(应用架构); A --> H(功能架构); A --> I(信息架构); B -->|定义角色&职责| J[教学管理]; C --> K[UI/UX设计]; D --> L[硬件环境]; E --> M[数据库设计]; F --> N[前后端分离]; G --> O[服务间通信]; H --> P[核心功能]; I --> Q[导航体系]; ``` 此Mermaid图展示了课程设计系统的多维度视角下的整体架构分布状况,有助于开发者全面把握项目的宏观蓝图,并据此展开更深入细致的工作计划制定和实施操作过程中的决策支持作用。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值