java网络编程2—流

Java流操作与网络编程详解 本文详细解析了Java 8中流(Stream)的中间操作与终端操作的区别,介绍了如何使用Stream API进行数据处理,包括filter、map、flatMap、reduce等常见操作。同时涵盖Optional类的使用、ServiceLoader机制、模块化服务提供者配置,以及Java网络编程基础,包括IP地址、端口号、TCP/UDP套接字和RMI远程调用等内容。 阅读详情

流

java的I/O建立在流(stream)之上,输入流读入数据,输出流写入数据。不同的流类会读/写某个特定的数据源,如

  • java.io.FileInputStream
  • sun.net.TelnetOutputStream
输出流

java的最基本的输出流是java.io.OutputStream:

public abstract class OutputStream

这个类提供了写入数据所需要的基本方法。这些方法包括

public abstract void write(int b) throws IOException
public void write(byte[] data) throws IOException
public void write(byte[] data,int offset,int length) throws IOException
public void flush() throws IOException
public void close() throws IOException

OutputStream的基本方法是write(int b).这个方法接受一个0-255之间的整数作为参数,将相应的字节写入到输出流中

例如:字符生成器协议定义了一个发送ASCII码的文本服务器,这个协议最流行的变体是发送72个字符的文本行,其中包含可显示的ASCII码(可显示的ASCII码字符是33到126之间的字符,不包含各种空白符和控制字符)

预备知识:java中的方法调用

方法一、被调用方法声明为static ,可以在其他方法中直接调用(内部类)

方法二、被调用方法,没被static修饰,不是静态方法。调用时需要通过类的实例化进行调用(内部类)

方法三、调用外部的类的方法,通过类的实例化进行调用

下面是示例代码:

public static void generateCharacters(OutputStream out) throws  IOException
    {
        int firstPrintableCharacter=33;
        int numberOfPrintableCharacter=94;
        int numberOfCharactersPerline=72;

        int start=firstPrintableCharacter;
        while (true) {
            for(int i=start;i<start+numberOfCharactersPerline;i++)
            {
                out.write((i-firstPrintableCharacter)%numberOfCharactersPerline+firstPrintableCharacter);
            }
            out.write('\r');
            out.write('\n');
            start=(((start+1)-firstPrintableCharacter)%numberOfCharactersPerline+firstPrintableCharacter);
        }
    }

一次写入一个字节的效率不高,所以如果有多字节要发送,则一次全部发送是一个好主意,主要是使用write(byte[] data)


暂停更新,发现现阶段学习有点不对应

FFTW库安装与使用(3.3.5版本) FFTW库安装与使用一、FFTW库介绍与下载二、FFTW库安装三、FFTW库测试 一、FFTW库介绍与下载   FFTW ( the Faster Fourier Transform in the West) 是一个快速计算离散傅里叶变换的标准C语言程序集,其由MIT的M.Frigo 和S. Johnson 开发。可计算一维或多维实和复数据以及任意规模的DFT,且运行速度比Eigen和opencv自带的FFT库函数快10倍以上。   下载链接:http://www.fftw.org/install/wind 阅读详情

相关推荐

超融合架构实战:如何用3节点搭建企业级分布式存储系统?

本文详细介绍了如何利用3节点搭建企业级分布式存储系统的超融合架构实战指南。从硬件选型、网络配置到存储策略调优,提供了全面的实操建议和性能优化技巧,帮助企业实现高效、弹性的IT基础设施。特别适合需要简化运维、提升存储性能的中型企业参考。

weixin_29200485的博客 325

使用DataOutputStream中的WriterInt(int)方法创建名为exercise1_3.dat的二进制文件,文件包含数目不确定的整数。然后再编写一个程序计算这些整数的总和并显示。

使用DataOutputStream中的WriterInt(int)方法创建名为exercise1_3.dat的二进制文件,文件包含数目不确定的整数。然后再编写一个程序计算这些整数的总和并显示。

m0_72053000的博客 383

Python Trimesh库实战:5分钟搞定STL文件解析与3D模型可视化

本文介绍了如何使用Python的Trimesh库快速解析STL文件并进行3D模型可视化。通过简洁的代码示例,演示了从环境搭建、模型加载、几何数据提取到基础变换和批量处理的核心流程,帮助开发者和工程师在5分钟内高效完成3D数据处理与可视化任务。

weixin_32005771的博客 159

Java OutputStream.write()的功能简介说明

Java OutputStream.write()的功能简介说明

qq_25073223的博客 7854

算法基础之数组双指针(Leetcode题型归纳)

数组双指针(Leetcode题型归纳)1.前言2.双指针基础3.相向双指针3.1定义3.2真题分析3.2.1两数之和(1)3.2.2两数之和-输入有序数组(167)3.2.3三数之和(15)3.2.4最接近的三数之和(16)3.2.5四数之和(18)3.2.6盛最多水的容器(11)3.2.7有效三角形的个数(611)4.同向双指针-快慢指针4.1定义4.2真题分析4.1.1删除排序数组中的重复项(26)4.1.2移除元素(27)4.1.3删除排序数组中的重复项(80)4.1.4移动零(283)4.1.5数组

Buluchacha的博客 1034

YOLO详解

本文参考知乎 https://zhuanlan.zhihu.com/p/25236464 1. YOLO的创新点 YOLO将物体检测作为回归问题求解。基于一个单独的end-to-end网络,完成从原始图像的输入到物体位置和类别的输出。 从网络设计上,YOLO与two steps的目标检测方法如RCNN、Fast RCNN和Faster RCNN的区别如下: YOLO训练和检测均是在一个单独网...

UnknownPlayer的博客 9945

Java ObjectOutputStream writeInt()方法及示例

ObjectOutputStream类writeInt()方法 (ObjectOutputStream Class writeInt() method) writeInt() method is available in java.io package. writeInt()方法在java.io包中可用。 writeInt() method is used to write the given ...

cumt951045的博客 987

PADS Logic VX2.5元件绘制全流程:从零开始创建自定义元件库

本文详细介绍了在PADS Logic VX2.5中从零开始创建自定义元件库的全流程。内容包括理解PADS独特的四库分立结构、绘制原理图符号(CAE封装)、关联PCB封装、创建元件类型以及最终的调用验证。掌握元件绘制技能能从根本上提升设计效率、确保设计规范统一,并从源头杜绝原理图与PCB之间的关联错误,是硬件工程师必备的核心能力。

oo7890的博客 441

JDK的OutputStream为什么方法write(int b)的入参类型是int呢?

Java的OutPutStream中有一个方法:write(int b)文档里是这么解释的:将指定的字节写入此输出流。write 的常规协定是:向输出流写入一个字节。要写入的字节是参数 b 的八个低位。b 的 24 个高位将被忽略。我怎么觉得这个方法有些奇怪呢。参数是一个int类型的整数,为啥不直接是一个字节呢? 今天在群里有小伙伴提到这个问题...

weixin_33889665的博客 763

【Claude】Auto Mode 触发安全分类器拦截的三种错误变体及对应处理 bug报错已解决

深度解析Claude Auto Mode安全分类器拦截的三种变体:内容拒绝、操作中断、累积触发,含完整排查流程与绕过策略。

博客 7583

9篇5章2节:NHIS 数据库的常规数据下载

文章概述了 NHIS-Teen、NHPI NHIS 等补充性调查以及 2024 年 NHIS 数据资源的具体内容,包括问卷材料、技术文档和数据模块,为研究者高效、规范地使用 NHIS 数据提供参考框架。

MD Code 1439

Java网络编程——2.流

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34242819的博客 126

热力学仿真软件:SimScale_(1).SimScale入门与基础操作

导航栏:位于页面顶部,包含项目管理、仿真设置、结果分析等主要功能。项目列表:展示用户创建的所有项目。工作区:用于进行具体的操作,如几何建模、网格划分、边界条件设置等。控制台:显示操作日志和仿真进度。网格划分是将几何模型离散化为一系列小单元的过程,这些单元用于求解热力学方程。SimScale提供了多种网格划分方法,包括结构化网格和非结构化网格。SimScale提供了丰富的API接口,用户可以通过编程语言进行二次开发,实现自动化仿真和结果分析。项目管理:创建、删除和管理项目。几何建模:创建、导入和修复几何模型。

kkchenjj的博客 1864

读书笔记-java网络编程-2java流的工作原理及应用-

java流的基本原理和结构 1.java流的基本原理和结构 1.1采用装饰者模式的java流设计 java流的设计采用装饰器模式的方式,装饰者模式采用共同抽象类或者接口A,被装饰者的组件B直接继承于抽象类,而所有的装饰者也有一个共同的抽象类或者接口C,而这个装饰者们的公共抽象类和接口C也是继承或者实现了A。下面是一张装饰者模式的通用原理图。 而在装饰者模式的所有类中实现了相同

千念飞羽的专栏 826

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

java网络编程:4,流的应用(2)

数据流应用 PS:异常处理应用带资源的try(try with resources),这个时候不再需要Finally子句去调用close(),Java的这个带资源的try块参数表中声明的所有Auto-Closeable对象自动调用close(),即不需要在运行的代码段末尾调用close()就能实现自动关闭。 package network_chap04; import java.io.Da...

HaLosec_Wei 654

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

JAVA30天-高级篇-6-IO流与网络编程

IO流 File类的使用 I0流原理及流的分类 节点流(或文件流) 缓冲流 转换流 标准输入、输出流 打印流 数据流 对象流 随机存取文件流 NIO.2中Path、Paths、Files类的使用 网络编程

admin741admin的博客 247

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

JAVA网络编程(一)

技术路线: C/C++ 依赖于操作系统OS C# .依赖于net平台 java 依赖于java虚拟机JVM 开发环境: JDK 8.0以上版本 NetBeans IDE 8.2 Node.js Eclipse Android Studio 2.2.3以上版本 Java I/O流 I/O、套接字、线程是网络编程的基本技术。 I/O 流...

肥不溜秋大梅子 182

IO流与网络编程

网络编程的目的:直接或间接地通过网络协议与其它计算机实现数据交换,进行通讯。网络编程中有两个主要的问题:如何准确地定位网络上一台或多台主机;定位主机上的特定的应用找到主机后如何可靠高效地进行数据传输通信双方地址IP端口号网络通信协议。OSI参考模型TCP/IP参考模型(或TCP/IP协议)

AbaseZ的博客 1030

java中IO流的补充

IO流补充 1.数据流 为了方便地操作Java语言的基本数据类型和String的数据,可以使用数据流。 数据流有两个类:(用于读取和写出基本数据类型、String类的数据)  DataInputStream 和 DataOutputStream  在 分别“套接”在 InputStream 和 和 OutputStream 子 子 类的流 DataInputStream中的方法 boolean readBoolean() byte readByte() char readChar() float rea

xiaotai1234的博客 271

Java面试题(含答案)6. IO与网络编程篇

JAVA中IO与网络编程面试题

pythontxt的博客 566

Java :IO流与网络通信基础

学习中关于IO与WEB基础方面的笔记 只是个人自学时的笔记 一、IO基础流 一:流的分类: 1.方向:输入流,输出流 2.角色:文件流(节点),处理流 3.操作单位:字节流byte[1],字符流char[2] 二:体系结构 抽象基类: 节点流(文件流) 缓冲流(处理流的一种) InputStream(字节流) FileInputStream BufferedInputStrea

qq_52873070的博客 396

《Java网络编程》第一章—过滤器流

过滤器流(Filter InputStream)是Java中一种特殊的输入流,它允许你通过链式组合的方式,将多个输入流的功能叠加在一起,从而实现对输入数据的各种处理。以上就是今天要分享的关于过滤器的内容,本文仅仅简单介绍一些过滤器流类的使用与注意事项。最后总结一下过滤器的作用:过滤器流可以通过拦截、处理和转换数据流中的信息,实现数据的清洗、格式化、加密、解密、压缩、解压等功能,以及过滤器流使用的包装的设计模式。

ZZZ_Tong的博客 1121

网络编程

网络编程是Java最擅长的方向之一,使用Java进行网络编程时,由虚拟机实现了底层复杂的网络协议,Java程序只需要调用Java标准库提供的接口,就可以简单高效地编写网络程序。 网络编程基础 计算机网络是指两台或更多的计算机组成的网络,在同一个网络中,任意两台计算机都可以直接通信,因为所有计算机都需要遵循同一种网络协议。 那什么是互联网呢?互联网是网络的网络(internet),即把很多计算机网络连接起来,形成一个全球统一的互联网。 对某个特定的计算机网络来说,它可能使用网络协议ABC,而另一个计算机网络可

qq_42530332的博客 1062

Java的IO流与网络编程

Java作为互联网的语言,IO与网络编程是以后项目开发的基础

weixin_43872993的博客 1253

java IO流与网络编程

Java的IO是实现输入和输出的基础,可以方便的实现数据的输入和输出操作。在Java中把对于输入/输入操作是以流的方式进行操作的。java.io 包下提供了大量的供我们使用的操作【流】的方法和接口,用于进行各类数据的处理和传输。计算机的输入和输出都是通过二进制来完成的。在网络中我们要传递数据就要将数据【流化】,换句话说就是将文件、复杂的对象转化成能够在网络上传输的一个个的0和1,我在这里先画几幅图帮助大家理解一下。文件在磁盘的输入输出:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(i

weixin_43972609的博客 852

【Java网络编程与IO流】Java中BIO、NIO、AIO的区别是什么?

Java中BIO、NIO、AIO的区别是什么? 如何学习Java的NIO Java核心(五)深入理解BIO、NIO、AIO BIO:阻塞同步通信模式,客户端与服务器连接需要三次握手,使用简单,但吞吐量少;(流) NIO: 非阻塞同步通信模式,客户端与服务器通过channel连接,采用多路复用器轮询注册的channel,提高吞吐量和可靠性。相比较于BIO,始终只有一个线程,并没有启动额外的线程来处理,解决了BIO线程无线增加的问题。(缓冲) AIO:非阻塞异步通信模式,采用异步通道实现通信,其基于事件和回调

Mind_programmonkey的博客 1863
上一篇: 快速排序基本思路(通俗易懂+例子)
下一篇: String和new String 的区别
code_AC
博客等级 码龄12年 255粉丝 109原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值