Java学习手册:常用的内置工具类包
以下是常用 Java 内置工具包。
• 日期时间处理工具包
• java.time
包(JSR 310):这是 Java 8 引入的一套全新的日期时间 API,旨在替代陈旧的java.util.Date
和java.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(); }
可创建一个新文件。FileInputStream
和FileOutputStream
类用于实现文件的输入输出操作,以字节流的形式读写文件数据。比如,通过FileInputStream fis = new FileInputStream(file); int data; while ((data = fis.read()) != -1) { ... }
读取文件中的每个字节,适用于处理低级的二进制文件操作,如图片、音频文件的读写。而BufferedReader
和BufferedWriter
则是对字符流的缓冲操作,能提高文件读写的效率,常用于文本文件的处理,配合FileReader
和FileWriter
使用,像读取文本文件内容并逐行处理时,可以使用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
设置日志的简单格式,方便对程序运行过程中的信息进行记录和跟踪,有助于问题的排查和程序的调试。