当前位置: 首页 > news >正文

Java学习手册:常用的内置工具类包

以下是常用 Java 内置工具包。

• 日期时间处理工具包

java.time包(JSR 310):这是 Java 8 引入的一套全新的日期时间 API,旨在替代陈旧的java.util.Datejava.util.Calendar类。其中的LocalDate用于表示不带时区的日期,如LocalDate date = LocalDate.now();可获取当前日期;LocalTime用于表示不带时区的时间,如LocalTime time = LocalTime.now();获取当前时间;LocalDateTime则同时包含日期和时间,LocalDateTime dateTime = LocalDateTime.now();能获取当前日期时间。这些类具有不可变性,所有的操作都会返回一个新的实例,保证了线程安全,广泛应用于需要精准日期时间处理的场景,如日历应用、任务调度系统等。此外,还提供ZonedDateTime来处理带时区的日期时间,通过指定时区来转换和计算不同时区下的日期时间,满足全球化应用中对不同地区时间处理的需求。

java.text.SimpleDateFormat:尽管java.time包功能强大且推荐使用,但在一些遗留系统或特定场景下,SimpleDateFormat仍然被广泛使用来格式化和解析日期。比如,可以使用SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String formattedDate = sdf.format(new Date());将日期格式化为“年-月-日”的形式,以及通过sdf.parse("2025-01-01")将字符串解析回日期对象。然而,SimpleDateFormat是非线程安全的,在多线程环境下使用时需要格外注意同步问题,否则可能导致解析结果错误或程序崩溃。

• 文件操作工具包

java.io包:这是 Java 中最基础的文件操作包。File类用于表示文件和目录的抽象路径,可以获取文件的基本属性,如名称、路径、大小、是否为目录等;还能进行一些简单的文件操作,如创建、删除、重命名文件或目录。例如,File file = new File("test.txt"); if (!file.exists()) { file.createNewFile(); }可创建一个新文件。FileInputStreamFileOutputStream类用于实现文件的输入输出操作,以字节流的形式读写文件数据。比如,通过FileInputStream fis = new FileInputStream(file); int data; while ((data = fis.read()) != -1) { ... }读取文件中的每个字节,适用于处理低级的二进制文件操作,如图片、音频文件的读写。而BufferedReaderBufferedWriter则是对字符流的缓冲操作,能提高文件读写的效率,常用于文本文件的处理,配合FileReaderFileWriter使用,像读取文本文件内容并逐行处理时,可以使用BufferedReader reader = new BufferedReader(new FileReader(file)); String line; while ((line = reader.readLine()) != null) { ... }

java.nio.file包:这是 Java 7 引入的新一代 I/O API 中的文件操作包,提供了更高效、更便捷的文件操作方式。Paths类用于获取Path对象,表示文件系统中的路径,如Path path = Paths.get("test.txt");Files类是一个工具类,包含大量静态方法来操作文件和目录,如Files.copy(srcPath, destPath);复制文件,Files.deleteIfExists(path);删除文件或目录,Files.readAllLines(path);读取文件的所有行到列表中,简化了文件操作的代码,提高了开发效率。此外,WatchService类可以用于监控文件系统中的变化,当文件被创建、修改或删除时,能够及时收到通知,适用于文件监控类应用,如日志文件监控系统、文件备份软件等。

• 网络通信工具包

java.net包:提供了用于网络通信的核心类和接口。Socket类和ServerSocket类是基于 TCP 协议实现网络通信的基础,Socket用于客户端与服务器建立连接,ServerSocket用于服务器端监听客户端的连接请求。例如,服务器端可以通过ServerSocket serverSocket = new ServerSocket(port); Socket clientSocket = serverSocket.accept();监听指定端口并接受客户端连接,客户端则通过Socket socket = new Socket(host, port);连接到服务器。HttpURLConnection类用于实现基于 HTTP 协议的网络通信,可以发送 HTTP 请求(如 GET、POST)并获取响应,常用在访问 RESTful API 或网页内容抓取等场景,如通过URL url = new URL("https://api.example.com/data"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET");发起 GET 请求获取数据。不过,HttpURLConnection的使用相对较为繁琐,配置和处理过程需要较多的代码,对于复杂的 HTTP 请求可能不太方便。

• 日志记录工具包

java.util.logging包:这是 Java 自带的日志记录工具包,虽然功能相对简单,但在一些小型应用或快速开发场景中也能满足基本的日志需求。Logger类用于获取日志记录器,通过Logger logger = Logger.getLogger(getClass().getName());可获取一个以类名为标识的日志记录器。它提供了不同级别的日志方法,如info()warning()severe()等,分别对应不同的日志严重程度。可以配置日志的输出位置(如控制台、文件)和输出格式,例如,通过FileHandler将日志输出到文件,并配合SimpleFormatter设置日志的简单格式,方便对程序运行过程中的信息进行记录和跟踪,有助于问题的排查和程序的调试。

相关文章:

  • 云原生--核心组件-容器篇-3-Docker三大核心之--镜像
  • elk中kibana一直处于可用和降级之间且es群集状态并没有问题的解决方法
  • 从 Vue 到 React:React 合成事件
  • 使用 AFL++ 对 IoT 二进制文件进行模糊测试 - 第一部分
  • Linux之netlink(2)libnl使用介绍(1)
  • Redis 数据类型全览:特性、场景与操作实例
  • 【Hive入门】Hive动态分区与静态分区:使用场景与性能对比完全指南
  • 游戏引擎学习第245天:wglChoosePixelFormatARB
  • 写入cache时数据格式错误产生的ERRO导致整个测试框架无法运行
  • PID程序实现
  • php一些命名规范 和 css命名规范
  • AIGC在自动化测试领域的创新应用:智能生成测试用例与缺陷预测
  • SpringCloud原理和机制
  • 产销协同的作用是什么?又如何对各部门发挥作用?
  • A. Ideal Generator
  • 【数据融合】基于拓展卡尔曼滤波实现雷达与红外的异步融合附matlab代码
  • 部署大模型需要多少GPU显存?以DeepSeek R1部署为例
  • 直接映射例题及解析
  • [笔记] MCPO搭建教程
  • 【Kafka】Windows环境下生产与消费流程详解(附流程图)
  • 人社部:我国劳动力市场潜力足,韧性强
  • 美大学建“私人联盟”对抗政府:学校已存在300年,特朗普才上任3个月
  • “中国游”带火“中国购”,“即买即退”让外国游客购物更丝滑
  • 人民时评:投资于人,促高质量充分就业
  • 当隐身13年的北小京决定公开身份 ,专业戏剧评论依然稀缺
  • 民航局答澎湃:督促各单位进一步完善航班大面积延误和大面积备降应急处置预案