![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
IO流与网络编程
数据传输之道
因努力 果随缘
一个有故事的程序员
展开
-
五种网络通讯的IO模型
阻塞式: 当我们没有获取到数据的时候,整个应用会产生阻塞,放弃了CPU执行,无法去做其他事情。非阻塞式:不管是否获取到数据,都立马必须告诉一个结果,如鬼没有获取到数据的情况下返回一个错误标记。根据错误的标记不断的进行轮训。Bio就是一个阻塞式的引入nio操作:java语言在jdk1.4版本推出一个 IO方案,就是对原来的BIO(阻塞式IO)实现了优化。核心思想:面向缓冲区,基于通道实现非阻塞式IO,多路IO复用实现(选择器)Bio与nio的区别Bio是一个阻塞式的io.它是面向与流传输也就是跟据每个字节实现原创 2022-07-10 20:36:02 · 214 阅读 · 0 评论 -
网络编程模型基础
OSI七层模型:应用层:http协议,电子文件传输,文件服务器等。表示层: 解决我们不同系统之间语法的通讯兼容问题会话层:建立与应用程序的会话连接传输层:提供端口号和传输的协议(TCP和UDP)网络层:为我们的数据实现路由(比如路由器,交换机)数据链路层:传输的地址的桢以及错误的检测物理层:所谓的物理层都是以二进制的形式,在屋里机器上实现传输(光纤,专线,各种物理介质实现)什么是Socket技术任何的编程语言都是支持socket(网络编程的技术)技术开发。目的就是解决两个应用程序通讯的问题:注意socket原创 2022-06-19 21:06:26 · 516 阅读 · 0 评论 -
对象序列化流
何为对象序列化,对象序列化介绍,对象序列化,就是将对象保存到磁盘中,或者在网络中传输对象,这种机制就是使用一个字节序列表示一个对象,该字节序列包:对象的类型,对象的数据和对象中存储的属性等信息。字节序列写到文件之后,相当于文件中持久保存了一个对象的信息。反之,该字节序列还可以从文件中读取出来,重构对象,对它进行反序列化。对象序列化流:ObjectOutputStream,将java对象的原始数据类型和图形写入OutputStream,可以使用ObjectInputStream读取(重构)对象,可以通过使原创 2022-02-21 13:54:55 · 178 阅读 · 0 评论 -
java之io流
今天就来讲讲java的io流,在开发中用到的地方还很多,比如文件上传,文件下载,文件解压缩等等都应用到了,所以这块知识还是挺重要的。首先说流之间,说下File类,它是文件和目录路径名的抽象表示,也就是文件和目录是可以通过File封装成对象的,对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已,他可以是存在的,也可以是不存在的,将来是要通过具体的操作把这个路径的内容转换为具体存在的。File类常用构造方法:我们来测试下接口: //File(String path.原创 2022-02-15 16:56:20 · 1170 阅读 · 0 评论 -
字节流应用小案列(字节流读数据)
字节流读数据:一次读一个字节数据字节输入流:FileINputStream(String name):通过打开与实际文件的连接来创建一个FileputStream,该文件由文件系统中的路径名name命名字节输入流读取数据的步骤(1)创建字节输入流对象(2)调用字节输入流对象的读取方法(3)释放资源public class Demo { public static void main(String[] args){ //创建字节输出流对象 Fi原创 2022-02-17 15:21:09 · 71 阅读 · 0 评论 -
字节流之复制文本文档
比如我现在需要把D;\suxiaoxiao\sisi.txt文本里的内容复制到C:\suxiaoxiao\sisi.txt里面实现步骤; 复制文本文件,其实就是把文本文件的内容从一个文件中读取出来(数据源),然后写入到另一个文件中(目的地)数据源:E:\suxiaoxiao\sisi.txt读数据 FileinputStream 写入目的地 C:\suxiaoxiao\sisi.txt FileOutputStream我们来实现下; public static void main(Stri原创 2022-02-17 15:51:18 · 134 阅读 · 0 评论 -
字节流读数据(一次读一个字节数组数据)
一次读一个字节数组的方法:public int read(byte[] b):从输入流读取最多b.length个字节的数据返回的是读入缓冲区的总字节数,也就是实际的读取字节个数 //根据数据源创建字节输入流对象 FileInputStream fis = null; try { fis = new FileInputStream("D:\\suxiaoxiao\\sisi.txt"); byte[] by原创 2022-02-17 16:26:58 · 447 阅读 · 0 评论 -
字节流实现复制图片
比如我要把D:\suxiaoxiao\sisi.jpg 复制到C:\suxiaoxiao目录下我们来剖析下实现步骤:根据数据源创建字节输入流对象根据目的地创建字节输出流对象读写数据,复制图片(一次读取一个字节数组,一次写入一个字节数组)释放资源 //根据数据源创建字节输入流对象 FileInputStream fis = null; //根据目的地创建字节输出流对象 FileOutputStream fos = null;原创 2022-02-17 16:44:22 · 2422 阅读 · 0 评论 -
IO流之字节缓冲流
字节缓冲流构造方法何为字节缓冲流, BufferOutputStream:该类实现缓冲输出流。通过设置这样的输出流,应用程序可以像底层输出流写入字节,而不必为写入的每个字节导致底层的系统调用。BufferedInputStream:创建BufferedInputStream将创建一个内部缓冲区数组,当从流中读取或跳过字节时,内部缓冲区将根据需要从所包含的输入流中重新填充,一次多个字节。构造方法:我们来用代码实现一下: public static void main(String原创 2022-02-18 10:24:20 · 170 阅读 · 0 评论 -
IO流之字符流
为什么会出现字符流:字符流介绍,由于字节流擦做中文不是特别方便,所有java就提供字符流:字符流 = 字节流 + 编码表中文的字节 存储方式:用字节流复制文本文件时,文本文件也会有中文,但是没有问题,原因是最终底层操作会自动进行字节拼接成中文,如何识别是中文的了?汉字在存储的时候,无论选择哪种编码存储,第一个字节都是负数。编码表:什么是字符集:是一个系统支持的所有字符的集合,包括各国际文字,标点符号,图形符号,数字等计算机要准确的存储和识别各种字符集符号,就需要进行字符编码,一套原创 2022-02-18 14:05:47 · 416 阅读 · 0 评论