"IO的概述,File类,文件路径,文件操作" 在Java中,I/O(Input/Output)是处理数据输入和输出的关键部分。它允许程序与外部世界交互,如磁盘、网络、键盘、显示器等。在Java中,I/O功能主要集中在`java.io`包中。 1. **概述** - 数据存储:内存中的数据在程序运行结束后会丢失,因此需要将数据持久化,也就是保存到硬盘等非易失性存储设备上。 - **输入(Input)**:从外部源读取数据,如读取文件、键盘输入等。 - **输出(Output)**:将数据写入到外部源,如写入文件、显示在屏幕上等。 2. **File类** - `File`类是Java中用于表示文件和目录的一个抽象类,它提供了许多与文件和目录操作相关的功能。 - **文件路径分隔符**: - Windows系统:使用反斜杠`\`作为路径分隔符,但在Java字符串中需要使用两个反斜杠`\\`来表示一个实际的反斜杠。属性分隔符是分号`;`。 - Unix系统:使用正斜杠`/`作为路径分隔符,属性分隔符是冒号`:`。Unix系统是大小写敏感的。 - **获取系统分隔符**: - 可以通过`File.pathSeparator`获取属性分隔符,`File.pathSeparatorChar`获取其字符形式。 - 通过`File.separator`获取路径分隔符,`File.separatorChar`获取其字符形式。 3. **获取路径和名称** - **相对路径**:相对于当前工作目录的路径。 - **绝对路径**:从根目录开始的完整路径。 - `File`类提供了一些方法来获取这些信息: - `getAbsolutePath()`:返回文件的绝对路径。 - `getAbsoluteFile()`:返回表示绝对路径的`File`对象。 - `getPath()`:返回文件的路径。 - `getParent()`:获取文件所在的父目录路径。 - `getName()`:获取文件或目录的名称。 4. **创建文件和基本操作** - 创建文件通常使用`File`类的构造器,例如: - `File(String pathname)`:使用指定的路径名创建`File`对象。 - `new File("D:\\software\\hello.txt")`:直接创建文件对象。 - `new File(File parent, String child)`:先创建父目录对象,再创建子文件对象。 - `new File("D:\\software", "hello.text")`:提供父目录和子文件名来创建。 - 文件操作的基本方法包括: - `createNewFile()`:创建新文件,如果文件已存在则返回`false`。 - `mkdir()` 和 `mkdirs()`:分别用于创建单级和多级目录。 - `delete()`:删除文件或空目录。 - `exists()`:检查文件或目录是否存在。 - `isFile()` 和 `isDirectory()`:分别判断是否为文件和目录。 - `canRead()` 和 `canWrite()`:检查是否有读取和写入权限。 5. **其他I/O操作** - Java的`java.io`包还包含了多种流(Stream)类,如`FileInputStream`和`FileOutputStream`用于文件的读写,`BufferedReader`和`PrintWriter`用于文本处理,以及`ObjectInputStream`和`ObjectOutputStream`用于对象序列化和反序列化。 - **流**:是Java I/O的核心概念,它们代表了数据的流动,可以从源读取数据到目的地。 - **缓冲区**:在读写操作中使用缓冲可以提高性能,例如`BufferedInputStream`和`BufferedOutputStream`。 - **过滤流**:如`DataInputStream`和`DataOutputStream`,提供了更高级别的数据操作,如读写基本类型。 6. **异常处理** - 在进行I/O操作时,需要关注可能抛出的异常,如`FileNotFoundException`、`IOException`等,并进行适当的捕获和处理。 Java的I/O系统提供了一套完整的框架来处理文件和数据的输入输出,从简单的文件操作到复杂的流处理,都包含在`java.io`包中。理解并熟练掌握这些概念和方法对于任何Java开发者来说都是至关重要的。
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://profile-avatar.csdnimg.cn/25cec7665bb14d13a489b5ed2c844baf_w1099938370.jpg!1)
- 粉丝: 2
- 资源: 1
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- 解决本地连接丢失无法上网的问题
- BIOS报警声音解析:故障原因与解决方法
- 广义均值移动跟踪算法在视频目标跟踪中的应用研究
- C++Builder快捷键大全:高效编程的秘密武器
- 网页制作入门:常用代码详解
- TX2440A开发板网络远程监控系统移植教程:易搭建与通用解决方案
- WebLogic10虚拟内存配置详解与优化技巧
- C#网络编程深度解析:Socket基础与应用
- 掌握Struts1:Java MVC轻量级框架详解
- 20个必备CSS代码段提升Web开发效率
- CSS样式大全:字体、文本、列表样式详解
- Proteus元件库大全:从基础到高级组件
- 74HC08芯片:高速CMOS四输入与门详细资料
- C#获取当前路径的多种方法详解
- 修复MySQL乱码问题:设置字符集为GB2312
- C语言的诞生与演进:从汇编到系统编程的革命
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)