Java IO 实战:文件创建、读取、写入与删除教程
5星 · 超过95%的资源 需积分: 31 131 浏览量
更新于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 上传
2024-11-23 上传
2023-05-12 上传
2013-07-11 上传
2011-06-17 上传
2023-10-17 上传
战歌IT
- 粉丝: 122
- 资源: 2393
最新资源
- PyPI 官网下载 | vam.whittaker-2.0.1-cp36-cp36m-win_amd64.whl
- 自定义横幅CollectionView布局-Swift开发
- ASP-online-shopping-system.rar_百货/超市行业_ASP_
- java jdk 8.0安装包
- 一种从命令行打开拉取请求的便携式无魔术方式
- 2018-2019年华东师范大学825计算机学科基础考研真题
- autofan-开源
- intelliPWR:intelliPWR的核心
- 人工智能实践课程小项目——对话机器人.zip
- 参考资料-412A.混凝土路面砖试验报告.zip
- Ant Lob Accessor-开源
- FTP.zip_Ftp客户端_Visual_C++_
- MATLAB-Improved-ABC-Algorithm:MATLAB改进的ABC算法
- atp-website:Surigao del Sur行动追踪和保护网站
- 家居装饰:使用虚拟现实的家居装饰
- LKCMS日历黄历修正版 v1.0