# Java 实现 BIO(Blocking I/O)
## 一、什么是 BIOS(Blocking I/O)
在 Java 编程中,BIO 是一种传统的 I/O 模型,表示阻塞输入/输出。使用这种方式,每次都有一个线程处理一个连接,它会一直阻塞直到有数据可读。
## 二、流程概述
实现 Java BIO 的步骤可以概括为以下几个主要步骤:
| 步骤编号 | 步骤描述            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-09-09 06:17:13
                            
                                19阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一.分布式rpc框架有很多,比如dubbo,netty,还有很多其他的产品。但他们大部分都是基于nio的,nio是非阻塞的io,那么它的内部机制是怎么实现的呢。1.由一个专门的线程处理所有IO事件,并负责分发。2.事件驱动机制,事件到来的时候触发操作,不需要阻塞的监视事件。3.线程之前通过wait,notify通信,减少线程切换。上图是nio的通信模型。其中:服务端和客户端各自维护一个管理通道的对            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-14 19:22:45
                            
                                46阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Java中的I/O操作分为三种模式:同步阻塞式(BIO),同步非阻塞式(NIO),异步非阻塞式(AIO),下面主要讲解BIO和NIO。1.1 什么是BIOBIO(Blocking IO):面向流传输(input/output),同步阻塞式I/O。InputStream: 输入流(用于读取字节)OutputStream: 输出流(用于写入字节)在JDK1.4之前,Java网络编程中使用java.ne            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-19 07:28:12
                            
                                98阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            图形学基础|泛光(Bloom) 文章目录图形学基础|泛光(Bloom)一、前言二、Bloom概述2.1 亮度提取2.2 模糊2.2.1 高斯模糊2.2.2 可分离滤波2.2.3 双重模糊2.3 叠加2.4 小结三、虚幻Bloom参考博文 一、前言泛光(Bloom) 效果会产生从图像明亮区域边界向外延伸的光线条纹,给人的感觉是极其明亮的光线压制住了摄像机。这是一种现实世界中的光现象,通过它能够以较为            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-07 13:56:15
                            
                                153阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            IO 介绍我们通常所说的 BIO 是相对于 NIO 来说的,BIO 也就是 Java 开始之初推出的 IO 操作模块,BIO 是 BlockingIO 的缩写,顾名思义就是阻塞 IO 的意思。BIO、NIO、AIO的区别BIO 就是传统的 java.io 包,它是基于流模型实现的,交互的方式是同步、阻塞方式,也就是说在读入输入流或者输出流时,在读写动作完成之前,线程会一直阻塞在那里,它们之间的调用            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-04 17:05:50
                            
                                148阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一、字节流 1. 概要 字节流有两个核心抽象类:InputStream 和 OutputStream。所有的字节流类都继承自这两个抽象类。 InputStream 负责输入,OutputStream 负责输出。 字节流主要操作byte类型数据。 以下为 JDK8 版本中字节流的族谱图: 由上图可以看            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2020-05-23 21:41:00
                            
                                150阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            Java BIO 基本介绍Java BIO 就是传统的 Java I/O 编程,其相关的类和接口在 java.io。BIO(            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-12-01 16:42:03
                            
                                139阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            # JAVA BIO: Exploring the Basics of Biological Data Analysis with Java
## Introduction
Java is a widely used programming language known for its versatility and ability to handle large-scale applicat            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-10-14 10:40:06
                            
                                95阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            预备学习Netty,首先从JAVA的BIO,NIO,AIO开始,逐步切入到Netty的学习中BIO也就是JAVA的同步阻塞IO实现,当客户端发现请求后会一直等待到服务端完成响应后结束本次通信过程。当客户端请救数量过多时会有明显的效率问题,但对于简单的通信实现(比如点对点的通信)很简洁实用。BIO一般有两种实现方式,一种是1:1的实现方式,针对每个客户端的请求,服务端开启一个线程进行对应。accep            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2020-04-13 10:05:50
                            
                                706阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1. AIO是什么本文所说的AIO特指Java环境下的AIO。AIO是java中IO模型的一种,作为NIO的改进和增强随JDK1.7版本更新被集成在JDK的nio包中,因此AIO也被称作是NIO2.0。区别于传统的BIO(Blocking IO,同步阻塞式模型,JDK1.4之前就存在于JDK中,NIO于JDK1.4版本发布更新)的阻塞式读写,AIO提供了从建立连接到读、写的全异步操作。AIO可用于            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-30 17:02:32
                            
                                54阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            为什么要构造双向链表呢?有什么用呢?《Java数据结构和算法》一书给出了一个例子回答了这两个问题: “假设一个文本编辑器用链表来存储文本。屏幕上的每一行文字作为一个String对象存储在链结点中。当编辑器用户乡下移动光标时,程序移到下一个链结点操纵或显示新的一行。但是如果用户向上移动光标会发生什么呢?在普通的链表中,需要current变量(或起同等作用的其它变量)调回到表头,再一步一步地向后走到新            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-20 15:24:12
                            
                                49阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            需求支持浏览器客户端接入根据请求的资源路径响应正确的结果支持访问静态资源支持访问动态资源当资源不存在时响应404提示当发生异常时提示500错误为...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-03-25 10:22:18
                            
                                92阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            长文,长代码,耐看>            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-04-27 17:02:19
                            
                                267阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            NIO 目录文章目录二、JAVA BIO1、 Java BIO基本介绍2、 java BIO工作机制3、传统            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-07-11 17:17:14
                            
                                98阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            BIO面向流.    阻塞式NIO面向缓冲区. 非阻塞式channnel负责传输, buffer负责存储.import java.nio.ByteBuffer;public class TestBuffer {    public static void main(String[] args) {            TestBuffer.test2();    }    public static void test2() {...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-08-24 14:59:07
                            
                                198阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # 教你如何实现Java BIO场景
## 1. 概述
在Java编程中,使用BIO(Blocking I/O)实现网络通信是一种简单直观的方式。本文将教你如何实现Java BIO场景,并提供详细的步骤和代码示例。
## 2. 流程步骤
下表展示了整个Java BIO场景的实现流程:
| 步骤 | 操作 |
| ---- | ---- |
| 1 | 创建ServerSocket对象,并绑定            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-06-11 03:20:31
                            
                                15阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1.NIO概述Java NIO非堵塞应用通常适用用在I/O读写等方面,我们知道,系统运行的性能瓶颈通常在I/O读写,包括对端口和文件的操作上,过去,在打开一个 I/O通道后,read()将一直等待在端口一边读取字节内容,如果没有内容进来,read()也是傻傻的等,这会影响我们程序继续做其他事情,那么改进做法就是开设线程,让线程去等待,但是这样做也是相当耗费资源的。Java NIO非堵塞技术实际是采            
                
         
            
            
            
            一、IO概述IO的操作方式通常分为几种:同步阻塞BIO、同步非阻塞NIO、异步非阳塞AIO1、在JDK1.4之前,我们建立网络连接的时候采用的是 BIO 模式。2、Java NIO(New IO或Non Blocking IO) 是从Java 1.4版本开始引入的一个新的IOAPI,可以替代标准的Java IO API。NIO支持面向缓冲区的、基于通道的IO操作NIO将以更加高效的方式进行文件的读            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-08 17:20:23
                            
                                112阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            # 使用Java FileInputStream进行文件读取
## 简介
在Java编程中,经常需要读取和处理文件。Java提供了许多用于文件操作的类和方法。其中,FileInputStream类是用于从文件中读取数据的类。本文将介绍如何使用Java FileInputStream类读取文件,以及如何处理读取到的数据。
## FileInputStream类概述
Java的FileInpu            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-01-03 11:10:33
                            
                                58阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Java NIO是在jdk1.4开始使用的,它既可以说成“新IO”,也可以说成非阻塞式I/O。下面是java NIO的工作原理:由一个专门的线程来处理所有的IO事件,并负责分发。事件驱动机制:事件到的时候触发,而不是同步的去监视事件。线程通讯:线程之间通过wait,notify等方式通讯。保证每次上下文切换都是有意义的。减少无谓的线程切换。阅读过一些资料之后,下面贴出我理解的java