Java文件流和网络流的原理以及流解析过程

news2024/11/24 13:36:56

流我们可以理解为水流,流的传输就相当于在水管里传输,本篇博客主要介绍流的原理和解析过程,学疏才浅,抛砖引玉,大佬勿喷。

文件流

假设我们收到了一个以Unicode编码的文件流,对于该文件流所表示的内容我们很好奇,那么就需要我们想办法对其进行解析。

已知它的编码方式为Unicode,16bit为一个字符,我们以byte类型数组接收,由于byte类型数组为8bit,即8bit代表一个字符,对于16bit类型的数据我们可以做以下处理:

byte[] arr;

//假设其中的一个字符为w.由于为16bit,我们可以直接使用short类型数据。

即short w = arr[i] << 8 + arr[i]

之后我们可以直接用char x = (char)w;来获取该字符的实际意义。 

我们获取到流之后,在操作系统中是如何把它识别成文件的呢?

对于操作系统有现成的对流进行处理的方法,我们在Java中经常见到。。。Stream,该类里就调用了操作系统里的方法,我们可以直接拿来使用。

网络流

Socket是建立网络连接的基础,而网络流是Socket连接之上进行数据传输的方式,在建立连接之后,使用流来进行数据的读写操作,从而实现网络通信。

Socket封装了TCP协议的通讯细节,使用它就可以与远端计算机建立TCP连接.并基于两个流(一个输入 一个输出)与远端计算机进行双向通讯 将Socket比喻为是一部手机 Socket实例化时需要传入两个参数

        参数1:服务端的地址信息

        参数2:服务端打开的服务端口

客户端通过服务端的地址找到网络上的服务器计算机,通过端口可以连接上该机器上运行的服务端应用程序.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/777054.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java显示日期和时间中间的CST表示什么意思

例如&#xff0c;用Java代码System.out.println(new Date())语句打印出了当前的日期和时间信息&#xff0c;结果显示&#xff1a;Tue Jul 18 18:42:57 CST 2023 package com.thb;import java.util.Date; import java.util.Locale; import java.util.TimeZone;public class Tes…

Office史上最大升级!GPT-4接入Office全家桶!Excel到PPT动嘴就能做!

3月17日&#xff0c;微软宣布将GPT-4融入了Office全家桶。 这意味着&#xff0c;不管是Word、PPT、Excel&#xff0c;还是Outlook、Teams、Microsoft Viva、Power Platform&#xff0c;所有这些办公软件&#xff0c;通通都会得到GPT-4的加持&#xff01; 直接改名吧&#xff0…

this指针/闭包及作用域(进阶)

一.作用域链 1.通过一个例子 let aglobalconsole.log(a);//globalfunction course(){let bjsconsole.log(b);//jssession()function session(){let cthisconsole.log(c);//Windowteacher()//函数提升function teacher(){let dstevenconsole.log(d);//stevenconsole.log(test1,…

Ae 效果:CC Kaleida

风格化/CC Kaleida Stylize/CC Kaleida 万花筒是一种装置或玩具&#xff0c;通过多次反射和镜像&#xff0c;将图像分割成多个对称和重复的图案。CC Kaleida&#xff08;CC 万花筒&#xff09; 效果通过类似的方式在图像上创建镜像和对称的视觉效果。 提示&#xff1a; 由于 CC…

SpringBoot项目中WEB页面放哪里--【JSB系列之008】

SpringBoot系列文章目录 SpringBoot知识范围-学习步骤【JSB系列之000】 文章目录 SpringBoot系列文章目录Resources目录Resources子目录实操一个helloworld!总结作业&#xff08;难度★✰✰✰✰ &#xff09;配套资源题外话 本系列环境 环境win11工具idea 2017jdk1.8数据库my…

AD导入封装以及器件(立创)

这里我们以立创商城为例 https://www.szlcsc.com/?cBD&sdclkidA5f6152zxrDiArD6A52&bd_vid12150450211089112893 1&#xff09;先搜索&#xff0c;然后点击数据手册&#xff1b; ​ 2&#xff09;出现如下界面&#xff0c;点击立即打开&#xff1b; ​ 3&#xff…

前端学习记录~2023.7.17~CSS杂记 Day9 浮动float 定位position 多列布局 响应式设计

前言一、浮动1、使盒子浮动起来2、清除浮动3、清除浮动元素周围的盒子&#xff08;1&#xff09;clearfix 小技巧&#xff08;2&#xff09;使用 overflow&#xff08;3&#xff09;display: flow-root 二、定位1、定位有哪些2、top、bottom、left 和 right3、定位上下文4、介绍…

宏下开展的#,##

宏下开展的#&#xff0c;## #表示字符串化 ##表示链接符号 #include <stdio.h>#define ABC(x) #x int main() {printf(ABC(abc));return 0; }#include <stdio.h>#define ABC(x) #x #define DAY(x) myday##x int main() {int myday1 10;int myday2 20;printf(AB…

Redis持久化(5)

⭐ 作者简介&#xff1a;码上言 ⭐ 代表教程&#xff1a;Spring Boot vue-element 开发个人博客项目实战教程 ⭐专栏内容&#xff1a;个人博客系统 ⭐我的文档网站&#xff1a;http://xyhwh-nav.cn/ 文章目录 Redis持久化1、持久化流程2、RDB2.1、优点2.2、缺点2.3、快照规…

VMware 安装 Centos7(超详细教程)

文章目录 &#x1f9d1;‍&#x1f393;前言&#x1f943;安装前准备&#x1f349;安装&#x1f91d; 总结 &#x1f9d1;‍&#x1f393;前言 大家好&#xff0c;本篇为本人在学习linux过程中所需要的软件以及安装过程&#xff0c;随手记录一下&#xff0c;写得不是很好&#…

JAVA多线程,为什么并发环境需要用到它?

目录 一、什么是并发环境 二、什么是多线程 三、如何在并发环境使用多线程 一、什么是并发环境 并发环境是指多个任务在同一时间段内同时执行的环境。在计算机领域中&#xff0c;指的是在同一个时间段内有多个线程或进程在执行。在并发环境下&#xff0c;多个任务可以同时进…

win11“你的internet安全设置阻止打开一个或多个文件”问题

“你的internet安全设置阻止打开一个或多个文件”问题解决记录 问题描述&#xff1a;部分程序出现无法下载或者无法打开的情况。 解决方法参考&#xff1a; 1.更改Internet安全设置&#xff08;仅限于由Internet安全设置出现的问题&#xff09;。 打开&#xff1a;控制表面&…

opencv实战--环境配置和文字识别

文章目录 前言一、环境配置二、文字识别2.1 文字单个识别2.2 文字单个带边框 总结 前言 一、环境配置 cmd输入python的时候跳转应用商店的解决方法。https://blog.csdn.net/qq_62294840/article/details/120623501 anaconda官方下载地址&#xff1a;https://www.anaconda.com…

Matplotlib grid()设置网格格式

通过 Matplotlib axes 对象提供的 grid() 方法可以开启或者关闭画布中的网格&#xff08;即是否显示网格&#xff09;以及网格的主/次刻度。除此之外&#xff0c;grid() 函数还可以设置网格的颜色、线型以及线宽等属性。 grid() 的函数使用格式如下&#xff1a; grid(colorb,…

C\C++ 使用exception类,抛出自定义异常并捕获

文章作者&#xff1a;里海 来源网站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan 简介&#xff1a; 抛出异常&#xff0c;并捕获 exception 效果&#xff1a; 代码&#xff1a; #include <iostream> #include <exception> #include <stdexcept&g…

学堂在线数据结构(上)(2023春)邓俊辉 课后题

The reverse number of a sequence is defined as the total number of reversed pairs in the sequence, and the total number of element comparisons performed by the insertion sort in the list of size n is: 一个序列的逆序数定义为该序列中的逆序对总数&#xff0c;…

Lesson3-4:OpenCV图像处理---直方图

直方图 学习目标 掌握图像的直方图计算和显示 了解掩膜的应用 熟悉直方图均衡化&#xff0c;了解自适应均衡化 1 灰度直方图 1.1 原理 直方图是对数据进行统计的一种方法&#xff0c;并且将统计值组织到一系列实现定义好的 bin 当中。其中&#xff0c; bin 为直方图中经常…

【C语言】结构体还不会?这一篇就够了

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前正在回炉重造C语言&#xff08;2023暑假&#xff09; ✈️专栏&#xff1a;【C语言航路】 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章对你…

pytorch深度学习 线性回归

import torch import matplotlib.pyplot as pltx_data torch.tensor([[1.0], [2.0], [3.0]]) # x_data是一个张量 y_data torch.tensor([[2.0], [4.0], [6.0]]) # y_data是一个张量# 定义一个线性回归模型 class LinearModel(torch.nn.Module): # 继承torch.nn.Moduledef …

SpringBoot项目中MVC使用--【JSB系列之010】

SpringBoot系列文章目录 SpringBoot知识范围-学习步骤【JSB系列之000】 文章目录 SpringBoot系列文章目录Http协议是马冬梅Cookie机制Session机制Token MVC模型本章的专注内容UserController代码 ThymeleafLets GO!总结作业配套资源题外话 Http协议是马冬梅 HTTP简介 1. HTTP…