Java IO 实战:文件创建、读取、写入与删除教程
5星 · 超过95%的资源 需积分: 31 63 浏览量
更新于2024-09-12
收藏 44KB DOC 举报
"Java IO 流用于创建、读取、写入和删除文件,通过HTML表单上传文件,以及在服务器端处理文件操作"
在Java编程中,IO(Input/Output)流是处理数据输入和输出的核心机制。针对文件操作,Java提供了多种类和方法来实现文件的创建、读取、写入和删除。以下是一些关键知识点:
1. **文件创建**:
- 使用`java.io.File`类创建文件对象,通过`File(String path)`构造函数指定文件路径。
- 调用`createNewFile()`方法来创建新的文件,但请注意,该方法并不确保文件夹结构存在,需要先创建文件夹。
2. **读取文件**:
- 创建`FileInputStream`或`FileReader`对象,以二进制或文本方式打开文件。
- 使用`BufferedReader`或`DataInputStream`读取文件内容,通常配合`readLine()`或`read()`方法。
3. **写入文件**:
- 使用`FileOutputStream`或`FileWriter`对象打开文件,进行写入操作。
- `BufferedWriter`和`DataOutputStream`可以提高写入效率,它们允许一次性写入大量数据。
- `write()`或`println()`方法用于写入文本,而`write(byte[])`用于写入二进制数据。
4. **删除文件**:
- `File`对象的`delete()`方法用于删除文件,如果文件是空的,通常可以直接删除;如果文件包含内容,需要先关闭文件,然后再删除。
5. **文件上传**:
- HTML表单中`<input type="file">`元素允许用户选择本地文件进行上传。
- JSP中,通过`multipart/form-data`编码类型接收文件上传,可以访问`HttpServletRequest`的`getPart()`或`getInputStream()`方法获取上传文件。
6. **处理文件上传**:
- 示例代码中,`FormFile`对象代表上传的文件,通过`getInputStream()`获取文件内容。
- `doSmTh()`方法读取`InputStream`,这里使用`InputStreamReader`和`BufferedReader`逐行读取文本内容。
- 检查文件类型,如`.getFileName().toUpperCase().endsWith(".JPG")`用于判断是否为JPG图片文件。
7. **创建目录**:
- `File`对象的`mkdir()`方法用于创建单级目录,`mkdirs()`创建多级目录。
8. **编码问题**:
- 示例代码中的`contentType="text/html;charset=gb2312"`设置HTTP响应头的字符集,以处理中文字符。
- 使用`InputStreamReader`时,指定正确的字符编码,如`"MS932"`或`"gb2312"`,避免乱码问题。
9. **异常处理**:
- 文件操作可能抛出`IOException`,因此在文件读写、删除和创建时,应包含适当的异常处理代码,确保程序的健壮性。
以上就是关于Java IO操作文件的关键知识点,涵盖了文件的创建、读取、写入、删除以及处理文件上传等常见操作。在实际应用中,还需要考虑线程安全、性能优化、错误处理和资源关闭等问题。
2010-12-30 上传
2011-11-23 上传
2023-06-09 上传
2023-05-12 上传
2013-07-11 上传
2011-06-17 上传
2023-10-17 上传
2020-08-29 上传
战歌IT
- 粉丝: 122
- 资源: 2394
最新资源
- JHU荣誉单变量微积分课程教案介绍
- Naruto爱好者必备CLI测试应用
- Android应用显示Ignaz-Taschner-Gymnasium取消课程概览
- ASP学生信息档案管理系统毕业设计及完整源码
- Java商城源码解析:酒店管理系统快速开发指南
- 构建可解析文本框:.NET 3.5中实现文本解析与验证
- Java语言打造任天堂红白机模拟器—nes4j解析
- 基于Hadoop和Hive的网络流量分析工具介绍
- Unity实现帝国象棋:从游戏到复刻
- WordPress文档嵌入插件:无需浏览器插件即可上传和显示文档
- Android开源项目精选:优秀项目篇
- 黑色设计商务酷站模板 - 网站构建新选择
- Rollup插件去除JS文件横幅:横扫许可证头
- AngularDart中Hammock服务的使用与REST API集成
- 开源AVR编程器:高效、低成本的微控制器编程解决方案
- Anya Keller 图片组合的开发部署记录