Java IO 实战:文件创建、读取、写入与删除教程
4星 · 超过85%的资源 需积分: 31 39 浏览量
更新于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()`方法。
304 浏览量
2023-06-09 上传
2024-11-23 上传
133 浏览量
1418 浏览量
161 浏览量
897 浏览量
wxfjjj2009
- 粉丝: 23
- 资源: 2
最新资源
- activerecord-postgis-adapter, 在PostgreSQL和rgeo上,基于PostGIS的ActiveRecord连接适配器,基于.zip
- 管理系统后台模板manage.zip
- data-scientist
- Ameme
- pretty-error, 查看 node.js 错误,减少了混乱.zip
- 行业文档-设计装置-安全胶带纸.zip
- 5G Massive MIMO的系统架构及测试技术的详细资料概述-综合文档
- CH341土豪金xtw.zip
- js-actions-azure
- SparkCore-Photon-Fritzing, Spark核心零件和示例的Fritzing库.zip
- 操作系统(学校).rar
- Adalight-FastLED:具有FastLED支持的Adalight
- profile-viewer-tutorial
- opencv-python3.4.1.15.zip
- 文卡特
- hmpo-laptops-public:公共回购以对开发人员笔记本电脑执行初始的引导