Java IO 实战:文件创建、读取、写入与删除教程
4星 · 超过85%的资源 需积分: 31 67 浏览量
更新于2024-11-03
1
收藏 44KB DOC 举报
"本文将介绍如何在Java IO中创建、读取、写入和删除文件,以及涉及到的文件上传和目录创建的相关操作。"
在Java编程中,IO(Input/Output)流是处理数据输入和输出的核心工具。针对标题和描述中的内容,我们将详细讨论以下几个知识点:
1. 创建文件:
使用`java.io.File`类可以创建文件。例如,`new File("路径/文件名")`会创建一个表示文件对象。要实际创建文件,可以调用`createNewFile()`方法,但需确保父目录已存在。例如:
```java
File myFile = new File("C:/test/myfile.txt");
if (!myFile.exists()) {
myFile.createNewFile();
}
```
2. 读取文件:
读取文件通常涉及使用`InputStreamReader`、`BufferedReader`等类。首先,创建`FileInputStream`对象,然后通过它构造`InputStreamReader`,再用`InputStreamReader`创建`BufferedReader`。如下所示:
```java
File file = new File("path/to/file.txt");
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
```
3. 写入文件:
写入文件可以使用`FileWriter`和`BufferedWriter`。创建`FileWriter`实例,然后通过它创建`BufferedWriter`。如下所示:
```java
File file = new File("path/to/file.txt");
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
writer.write("Hello, World!");
writer.newLine();
writer.close();
```
4. 删除文件:
删除文件使用`delete()`方法。例如:
```java
File file = new File("path/to/file.txt");
boolean isDeleted = file.delete();
if (isDeleted) {
System.out.println("文件已删除");
} else {
System.out.println("删除文件失败");
}
```
5. 文件上传:
文件上传通常涉及HTML表单和Servlet处理。在HTML中,`<input type="file">`用于选择本地文件。在Servlet中,可以使用`HttpServletRequest`的`getPart()`或`getParts()`方法来获取上传的文件。示例代码如下:
```java
Part filePart = request.getPart("importFile");
InputStream is = filePart.getInputStream();
// 进行进一步处理...
```
6. 创建目录:
创建目录同样使用`File`类的`mkdir()`或`mkdirs()`方法。`mkdirs()`会创建多级目录,而`mkdir()`仅创建单级。示例:
```java
String filePath = "C:\\测试\\";
File myFilePath = new File(filePath);
if (!myFilePath.exists()) {
myFilePath.mkdirs();
}
```
7. 编码处理:
文件读写时要注意编码问题。在Java中,使用`InputStreamReader`和`OutputStreamWriter`时,可以指定编码,如"MS932"。在读取文件时,不正确地设置编码可能导致乱码。
在处理文件I/O时,确保正确处理异常,并在操作完成后关闭流,以避免资源泄露。在上述示例中,使用了`try-with-resources`语句,它会自动关闭流,但在较旧的Java版本中,需要手动调用`close()`方法。
2010-12-30 上传
2023-06-09 上传
2023-05-12 上传
2011-11-23 上传
2013-07-11 上传
2011-06-17 上传
2023-10-17 上传
wxfjjj2009
- 粉丝: 23
- 资源: 2
最新资源
- 火炬连体网络在MNIST的2D嵌入实现示例
- Angular插件增强Application Insights JavaScript SDK功能
- 实时三维重建:InfiniTAM的ros驱动应用
- Spring与Mybatis整合的配置与实践
- Vozy前端技术测试深入体验与模板参考
- React应用实现语音转文字功能介绍
- PHPMailer-6.6.4: PHP邮件收发类库的详细介绍
- Felineboard:为猫主人设计的交互式仪表板
- PGRFileManager:功能强大的开源Ajax文件管理器
- Pytest-Html定制测试报告与源代码封装教程
- Angular开发与部署指南:从创建到测试
- BASIC-BINARY-IPC系统:进程间通信的非阻塞接口
- LTK3D: Common Lisp中的基础3D图形实现
- Timer-Counter-Lister:官方源代码及更新发布
- Galaxia REST API:面向地球问题的解决方案
- Node.js模块:随机动物实例教程与源码解析