- 博客(58)
- 资源 (4)
- 收藏
- 关注
原创 Java 输入与输出(I/O)之字节流、字符流与转换流
- I/O流按数据单元(粒度大小)可分为字节流(以字节为处理单元)和字符流(以字符为处理单元)。 - I/O流按数据流向分可分为输入流(只能从中读取数据,不能向其写入数据)和输出流(只能向其写入数据,不能从中读取数据)。输入流使用InpurtStream和Reader作为基类;输出流使用OutputStream和Writer作为基类。 在字节流和字符流之间可用转换流进行转换。字节流更通用,但当处理文本数据时字节流比较繁琐;使用字符流操作文本数据则更便捷一些。因此,由于使用场景不同有时候就需要转换
2024-10-25 13:51:08 328
原创 Java 输入与输出(I\O)之管道流介绍
在Java中,管道流是一种用于在两个线程之间进行通信的重要技术。管道流提供了一个单向数据流,其中一个线程将数据写入管道,而另一个线程将数据从管道读取。管道流是用来在多个线程之间进行通信的Java流。管道流也可分为字节流和字符流: - 字节管道流:PipedOutputStream 和 PipedInputStream。 - 字符管道流:PipedWriter 和 PipedReader。PipedOutputStream、PipedWriter 是管道输出流,它们是写入者/生产者/发送者;P
2024-10-25 12:35:46 697
原创 Java 输入与输出(I\O)之对象流与对象序列化
Java对象流是用于存储和读取基本数据类型数据或对象数据的输入输出流。Java的对象流可分为两种: - 1,对象输入流类ObjectInputStream 用于从数据源读取对象数据,它是可以读取基本数据类型数据或对象数据的输入流。 - 2,对象输出流类ObjectOutputStream 用于把对象写入到数据源,它是可以输出基本数据类型数据或对象数据的输出流。Java中提供了ObjectInputStream、ObjectOutputStream这两个类用于对象序列化操作,这两个类是用于存储和读取对
2024-10-25 12:32:46 953
原创 Java 输入与输出(I\O)之字符缓冲流【BufferedReader】【BufferedWriter】详解
缓冲流是Java I/O中的一个重要概念,它可以提高文件读写的性能。由于磁盘的IO处理速度远低于内存的读写速度。为了提高文件读写性能,我们可以使用缓冲流。缓冲流使用内存缓冲区,可以一次性读取或写入大量数据,从而减少与磁盘的交互次数,提高整体性能。缓冲流有两种类型:缓冲字节流和缓冲字符流。缓冲字节流包括BufferedInputStream和BufferedOutputStream,而缓冲字符流包括BufferedReader和BufferedWriter。
2024-10-21 09:26:37 378
原创 Java 输入与输出(I/O)流之装饰流【处理流】
按照Java 输入与输出(I/O)流的处理功能:I/O流可分为低级的节点流和高级的装饰流(又称处理流)。 - 节点流是直接从数据源(数据源可以是文件、数组、内存或网络)读/写数据的输入输出流; - 装饰流(又称处理流),是指用于对一个已存在的输入输出流进行装饰的流,装饰流在不改变数据信息的情况下添加额外的增强功能。因为装饰流不会直接连接到实际的数据源,不能够直接获取数据,所以构建一个装饰流时,需要在构造函数中传入一个节点流。装饰流可进行多层嵌套装饰。
2024-10-21 08:43:55 803
原创 Java 输入与输出(I\O)之字节缓冲流【BufferedInputStream】【BufferedOutputStream】详解
缓冲流是Java I/O中的一个重要概念,它可以提高文件读写的性能。由于磁盘的IO处理速度远低于内存的读写速度。为了提高文件读写性能,我们可以使用缓冲流。缓冲流使用内存缓冲区,可以一次性读取或写入大量数据,从而减少与磁盘的交互次数,提高整体性能。缓冲流有两种类型:缓冲字节流和缓冲字符流。缓冲字节流包括BufferedInputStream和BufferedOutputStream,而缓冲字符流包括BufferedReader和BufferedWriter。
2024-10-20 23:33:03 208
原创 Java的walkFileTree方法用法【FileVisitor接口】
NIO.2的Files工具类提供了两个静态工具方法walk()和walkFileTree()可用来高效并优雅地遍历文件系统。walkFileTree()功能更强,可自定义实现更多功能:遍历目录文件、拷贝目录文件、移动目录文件和删除目录文件;也可按模式匹配查询文件。
2024-10-19 13:53:07 725
原创 Java 输入与输出(I\O)之数据流【DataInputStream】【DataOutputStream】详解
DataInputStream和DataOutputStream是 Java的数据流,数据流是一个装饰流(处理流)。数据流在读取和写入时的顺序要一致。否则,读取的数据必定是错误的,会造成乱码。数据流DataInputStream和DataOutputStream扩展了基本输入输出流读取基本数据类型和String类型数据的功能。数据流能以一种与平台无关的方式,直接从字节输入读取或向字节输出流写出Java基本类型和String类型的数据,常用于网络传输。
2024-10-19 13:42:27 897
原创 Java 输入与输出(I/O)流详解
Java 输入/输出流(Input/Output,简称I/O)是Java语言用于读写数据的API,它提供了一系列类和接口,用于读取和写入各种类型的数据信息。输入/输出流是单向非缓冲的,它只支持字节流(InputStream、OutputStream)和字符流(Reader、Writer)两种。它采用阻塞模式Java通过装饰器设计模式来对I/O流进行组合,可以方便地提供了缓冲、过滤、对象序列化等特殊功能,以满足各种复杂的I/O需求。
2024-10-14 21:50:28 1048
原创 Java的File类详解
Java文件类File是java.io包下代表与平台无关的文件和目录,Java程序操作文件和目录,都可以通过File类来完成。但是访问文件内容本身,要通过输入/输出流。java.io.File类是Java用于处理文件和目录路径的类。它提供了文件和目录的创建、删除、重命名等操作。File类还可以用来获取文件和目录的属性,包括大小、修改时间,以及是否存在、是否可读可写等。Java是面向对象的语言,因此硬盘中的一个文件在Java中通过文件对象来表示,文件对象所属的类就是File类。File对象代表磁盘中实际存
2024-10-14 11:08:18 1036
原创 Java文件I/O处理之RandomAccessFile【随意存取文件】
RandomAccessFile它处理文件的方式与众不同:既可以读取文件内容,也可以向文件写出数据;而且可以随意定位到文件不同位置进行读和写。RandomAccessFile在底层把文件当作一个大型字节数组,可按字节进行索引。刚打开文件时文件指针位于文件起始处其索引为0;读取数据时文件指针随着字节的读取而往前移动指针;写出数据时文件指针也随着字节的写出而移动。当写出数据时,若文件指针超过了文件结尾,则会对字节数组自动扩容。
2024-09-28 18:43:38 988
原创 码点和码元的区别--Unicode标准的【码点】和【码元】
码点(code point)与码元(code unit)是JDK 5.0开始引入的,与Unicode标准编码相关的两个专业术语。因此,在Unicode标准中每个字符的码点是唯一的。但每个字符可以有多种编码,不同编码方案的码元大小是不一样的。Unicode是通用字符编码标准是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode标准定义了三种字符编码方案:UTF-8、UTF-16、UTF-32。Unicode标准定义了一个统一的多语言文本字符集(即Unicode字符集)。
2024-09-25 21:41:40 481
原创 什么是BOM(Byte Order Mark)【字节序标记】【大端BE】【小端LE】
当文本数据在网络传输时通讯双方才需要约定字节序或传输字节序标记BOM(Byte Order Mark)。实际上,字节序(Byte Order)是一个数据编码的通用术语,不仅在字符编码方案中使用,在其他数据编码中,比如音频、视频的数据编码格式中字节序的大小端也是适用的。Unicode编码方案中UTF-8是个例外,没有大端和小端。
2024-09-25 18:48:27 584
原创 二进制文件与文本文件的区别【字符集Charset】
计算机上存储的文件在比特位上都是以二进制数字0或1表示,因此在物理层面上,文本文件和二进制文件没有本质差异,都是由数字0或1组成的比特位集合。文本文件和二进制文件,两者的差异体现在编码逻辑上,需要根据文件头中标记来区分。
2024-09-25 18:34:18 584
原创 日期和时间类【Date】【Calendar日历类】【LocalDate】Date-Time API详解
本文先介绍时间相关的基础知识:GMT - 格林尼治标准时间(Greenwich Mean Time)、UTC - 协调世界时(Universal Time Coordinated),以及时区等常识。然后重点介绍了:日期和时间类【Date】【Calendar日历类】【LocalDate】,并对Date-Time API作了详细介绍。
2024-09-19 10:51:26 1092
原创 Java 输入与输出之 NIO【NIO网络编程】探索之【五】【Selector详解】【多人聊天室例程】
NIO网络通讯程序【多人聊天室例程】,详细介绍了NIO的核心组件Selector和selectedKeys,selectedKeys它是通道Channel注册到Selector上的已注册的键的集合的子集。本文详细剖析了Selector选择器与通道相结合开发网络通讯程序的步骤,对Java网络通讯程序的开发有一定的参考价值。
2024-09-19 09:59:13 687
原创 Java 输入与输出之 NIO.2【AIO】【内存映射文件】【自动资源管理】探索之【四】
Java NIO(New IO)的另外特性:内存映射文件和try语句的自动资源管理JDK 1.4引入的缓冲区Buffer和通道Channel,以及MappedByteBuffer,为内存映射文件提供了基础。NIO Java 7 增加了一个新特性 自动资源管理的“带资源的try语句”。
2024-08-30 19:00:53 1429
原创 Java 输入与输出之 NIO.2【AIO】【Path、Paths、Files】【walkFileTree】探索之【三】
详细介绍了Java NIO.2 中Path 、Paths和 Files等两个核心类,演示了使用Path和Files一起访问文件系统,对文件和目录进行管理和操作。详细介绍了Files.newDirectoryStream方法和Files.walkFileTree方法对目录进行遍历操作。
2024-08-30 15:01:32 1391
原创 Java 输入与输出之 NIO【非阻塞式IO】【NIO网络编程】探索之【二】
Java 标准的输入/输出流(Input/Output,简称I/O)是Java语言用于读写数据的API,它提供了一系列类和接口,用于读取和写入各种类型的数据信息。BIO全称是Blocking IO,同步阻塞式IO,是JDK1.4之前的标准IO模型。Java NIO(New I/O)是Java 1.4版本中引入的一套全新的IO处理机制,与之前的标准IO(BIO)相比,NIO具有更高的可扩展性和灵活性,特别是在网络编程和高并发场景下,表现得更为出色。本文探讨了NIO的网络通讯应用。
2024-08-27 14:13:05 1152
原创 Java 输入与输出之 NIO【非阻塞式IO】【NIO核心原理】探索之【一】
Java 标准的输入/输出流(Input/Output,简称I/O)是Java语言用于读写数据的API,它提供了一系列类和接口,用于读取和写入各种类型的数据信息。BIO全称是Blocking IO,同步阻塞式IO,是JDK1.4之前的标准IO模型。Java NIO(New I/O)是Java 1.4版本中引入的一套全新的IO处理机制,与之前的标准IO(BIO)相比,NIO具有更高的可扩展性和灵活性,特别是在网络编程和高并发场景下,表现得更为出色。本文对NIO进行了深入的探索。
2024-08-27 14:00:26 967
原创 java编程 斐波拉契数列算法集锦【斐波拉契数列】【下】【集合类】【Stream函数式编程】
斐波那契数列(Fibonacci sequence),又称黄金分割数列,是一个非常经典的递归问题。本文介绍了利用集合框架中Map和Stream函数式编程实现斐波那契数列的算法版本。
2024-08-21 12:00:22 914
原创 java 函数接口Consumer简介与示例【函数式编程】【Stream】
Java 8 中的 消费者接口Consumer 是一个函数接口,它可以接受一个泛型 类型参数,它属于java.util.function包。accept(T) 方法:是 Consumer 函数式接口的方法,传入单个输入参数,无返回值,可以用于 Lambda 表达式和方法引用。你可以使用 Consumer 来执行某个动作,比如打印操作,该动作接受一个参数并且不返回任何值。
2024-08-19 18:42:48 496
原创 java编程 斐波拉契数列算法集锦【斐波拉契数列】【上】
斐波那契数列(Fibonacci sequence),又称黄金分割数列。其数列数值为:0、1、1、2、3、5、8、13、21、34……在数学上,这一数列以如下递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)。本文介绍了多种算法:包括递归算法、迭代算法、矩阵算法(矩阵乘法、快速幂)等版本。
2024-08-19 12:14:18 724
原创 数据文件不同读入方式的【CRC32】【循环冗余校验】计算效率比较
本文以多种方式读取文件计算数据文件的CRC32校验码,进行计算效率比较。1,用InputStream方式读文件;2,用BufferedInputStream方式读文件3,用RandomAccessFile【随机存取】方式读文件4,用MemMapFile【内存映象文件】方式读文件计算数据文件的CRC32校验码
2024-08-10 15:31:02 294 1
原创 【计算机基础知识】原码、反码、补码
【原码、反码、补码】补码中,正数的补码与其原码和反码相同,负数的补码则等于其反码的末尾加1。最高位(最左边的比特位)是符号位,其余的都是数值位。有符号整数可分为符号位和数值位,最高位(最左边的比特位)是符号位,其余的都是数值位。反码中,正数的反码与其原码相同,负数的反码则是其绝对值按位取反。负数的原码,符号位不变,把整数的绝对值转换为二进制表示,其与符号位一起组成负整数的原码。在计算机系统中,数值一律用补码来表示和存储,因为使用补码可以统一处理符号位和数值域,同时简化加法和减法的处理。
2024-07-18 17:40:03 422
原创 【电脑应用技巧】如何寻找电脑应用的安装包&华为电脑、平板和手机资源交换共享
电脑、平板和手机我都用【华为】品牌的,再每月不到5元租了50G的【华为云空间】,手机、电脑和平板的各种资源交换是无缝结合非常方便。电脑的初学者可能会直接用【百度】搜索电脑应用程序的安装包,但是这样找到的电脑应用程序安装包经常会被加入木马或者强制捆绑一些不需要的应用装入电脑。【联想的应用商店】上应用非常齐全,资源多多,非常好用,而且比较干净。今天告诉大家一个得到干净电脑应用程序安装包的方法,就是用【联想的应用商店】。联想电脑我是一点也不感兴趣的,但【联想的应用商店】确实可圈可点。
2024-07-09 21:54:23 480
原创 【多媒体】Java实现MP4和MP3音视频播放器【JavaFX】【更多功能的播放器】【音视频播放】
使用Java语言实现一个视频播放器,支持播放各种常见视频格式,如MP4、Flv等;同时支持MP3和wav格式的音频。这个视频播放器使用菜单来用文件选择器来选择视频文件进行播放。该播放器具备基本的播放控制功能,如播放、暂停、继续、关闭、全屏等,并且能够实现视频的全屏播放和音量控制。
2024-07-09 18:10:53 915
原创 【多媒体】Java实现MP4和MP3音视频播放器【JavaFX】【音视频播放】
JavaFX是一个用于创建富客户端应用程序的GUI框架,它提供了丰富的图形、多媒体和动画功能。在JavaFX中,我们可以使用简洁的代码来实现视频播放功能。
2024-06-30 16:15:30 1127
原创 【多媒体】富客户端应用程序GUI框架 JavaFX 2.0 简介
JavaFX是一个用于创建富客户端应用程序的GUI框架,它提供了丰富的图形、多媒体和动画功能。在JavaFX中,还可以使用简洁的代码来实现视频播放功能。
2024-06-30 16:12:07 1430
原创 【数据库编程】Derby数据库的部署与验证【用 ij 工具创建数据库】【一】
Java有一个内置的Derby数据库,是一个完全用Java语言编写的、功能强大的微型数据库,其基础引擎和内嵌的JDBC驱动总共大约2MB大小。其他环境变量设置参照嵌入模式。创建服务器模式derby数据库的“创建数据库的连接字符串”与嵌入式的不同,因此,需要更新脚本bankDB_CrtDB.sql。如下图,表示数据库和两个数据库表已创建完成,创建的数据库在D:\DB文件夹中的BankDB。2,服务器模式:网络数据库模式,这是标准的数据库服务器(服务器/客户端)模式,是所有的数据库产品都支持的模式。
2024-06-25 17:31:21 1357
原创 【第三方JSON库】org.json.simple用法初探—Java编程【Eclipse平台】【不使用项目管理工具】【不添加依赖解析】
JSON.simple是一种由纯java开发的开源JSON库,包含在JSON.simple.jar中。因此需要下载一个JSON.simple.jar的JAR文件包,并在【Eclipse平台】配置构建路径。默认具体的java.util.List类对应的是 org.json.simple.JSONArray;默认具体的java.util.Map类对应的是 org.json.simple.JSONObject;
2024-06-25 13:34:11 1696
原创 【位操作】比特位计数(bit counting)【总结篇】【位运算】【分治法】
【位运算】比特位计数(bit counting)【分治法】【总结篇】
2024-06-14 11:21:22 517
原创 【位操作】比特位计数(bit counting)之四【分治法】【3bit分组】右移位法【彻底打通任督二脉】【位运算】
【位操作】比特位计数(bit counting)之四【分治法】【3bit分组】右移位法【彻底打通任督二脉】【位运算】
2024-06-03 10:29:49 1153
原创 【位操作】比特位计数(bit counting)之三【分治法】【2bit分组】右移位法【Integer类bitCount()方法】【彻底打通任督二脉】【位运算】
【位操作】比特位计数(bit counting)之三【分治法】【2bit分组】右移位法【Integer类bitCount()方法】【彻底打通任督二脉】【位运算】
2024-05-20 13:57:45 810
原创 【位操作】比特位计数(bit counting)之二【分治法】【2bit分组】右移位法【彻底打通任督二脉】【位运算】
【位操作】比特位计数(bit counting)之二【分治法】【2bit分组】右移位法【彻底打通任督二脉】【位运算】
2024-05-15 13:55:43 1110 2
原创 【位操作】比特位计数(bit counting)之一【位运算】【汉明重量】【汉明距离】
汉明重量是一个信息的二进制编码相对于同样粒度的零的二进制编码的汉明距离。汉明距离是数据传输差错控制中用到的一个概念,用来表示两个编码信息的距离,它表示两个相同粒度的信息的二进制编码中不同比特位的个数。上图是x = 136的二进制编码(10001000),汉明重量算法第一次循环迭代的结果示意图,x = x&(x-1) = 128,二进制编码中只剩下一个比特位为1。汉明距离是数据传输差错控制中用到的一个概念,用来表示两个编码信息的距离,它表示两个相同粒度的信息的二进制编码中不同比特位的个数。
2024-05-12 10:36:52 724
使用JDK中JavaSound音频API接口实现Java程序播放wav音频 包括例程和wav音频示例文件
2024-07-05
JSONParsingExample源码入所需JSON.simple.jar的JAR文件包
2024-06-25
Java图形图像编程例程
2022-04-24
mysql-installer-community-5.7.34.0ForWindows_x86_32-bit.msi
2021-04-22
db-derby-10.14.2.0-lib.zip
2021-04-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人