Java 中的文件处理:如何处理 Java 文件?
已发表: 2021-03-12Java 是一种广泛流行的编程语言。 除了强大的架构和组件之外,其成功和流行的最重要原因之一是它支持众多功能。 Java 中的文件处理就是这样一种功能,它允许我们处理文件。 今天,我们将学习使用Java 中的文件概念可以执行的各种操作。
目录
什么是 Java 文件处理?
如前所述, Java 中的文件处理允许您处理文件。 它是在 Java.io 包的 File 类中定义的 Java 功能。 Java.io 包中的 io 代表输入和输出。 您将在 Java.io 包中找到执行任何输入或输出操作所需的所有类。
您可以通过创建对象并提供文件或目录名称来访问和使用此 File 类来执行各种功能。 创建对象和使用 File 类的语法是:
导入java.io.File;
文件 obj = new File(“name.txt”);
如上述语法所示,您首先需要从 Java.io 包中导入 File 类。 导入后,您需要做的就是创建一个对象并指定要使用的文件或目录名称。 要在 Windows 操作系统中提及目录名称,您必须使用“\\”。 例如,您必须使用“ C:\\Users\\MyFolder\\MySubFolder ”而不是“ C:\Users|MyFolder|MySubFolder ”。 但是,对于其他操作系统,例如 Linux,您可以照常使用单个 \。
Java中文件概念的所有I/O(输入/输出)操作都是在流的帮助下完成的。 让我们深入研究什么是流,以及这些操作是如何用它执行的?
Java中流的概念是什么?
简单来说,流是一系列数据。 有两种类型的流,它们是:
- 字节流:这种类型的流适用于字节数据。 当您以字节(8 位)格式读取或写入数据时,将使用字节流执行 I/O 操作。
- 字符流:这种类型的流适用于字符序列。 当您使用字符读取或写入数据时,将使用字符流执行 I/O 操作。
结帐:GitHub 上的顶级 Java 项目
Java中有哪些不同的文件处理方法?
File 类提供了各种预定义的方法来帮助您通过调用它们来执行所有 I/O 操作。 下表显示了所有方法,以及它们执行的操作。
方法 | 类型 | 描述 |
可以阅读() | 布尔值 | 它检查您是否可以读取文件。 |
可以写() | 布尔值 | 它测试您是否可以写入文件。 |
创建新文件() | 布尔值 | 这将创建一个新的空文件。 |
删除() | 布尔值 | 此方法将删除指定的文件。 |
存在() | 布尔值 | 它检查提到的文件是否存在。 |
获取名称() | 细绳 | 返回文件名。 |
获取绝对路径() | 细绳 | 返回文件的绝对路径名。 |
长度() | 长 | 它以字节为单位返回文件的大小。 |
列表() | 细绳[] | 返回目录中存在的文件名列表。 |
mkdir() | 布尔值 | 此方法将创建一个新目录。 |
如何执行不同的 Java 文件处理操作?
由于您了解 File 类中可用的不同方法,是时候使用它们来执行各种Java 文件处理操作了。 首先,您可以对文件完成以下操作。
- 创建一个新文件。
- 获取文件信息。
- 写入文件。
- 从文件中读取。
- 删除一个文件。
我们将通过一个示例来执行这些操作中的每一个。 在第一个示例中,我们将创建一个新文件,然后使用同一文件执行其他任务。
创建文件
您可以使用 createNewFile() 方法创建文件。 执行该方法将返回真或假。 如果文件创建成功,它将返回一个 true。 另一方面,如果文件已经存在,它将返回 false。
始终建议在 try 和 catch 块中使用此方法,因为如果文件未成功创建,它可能会引发异常。 您可以在我们的 Java 异常处理指南中了解更多信息。 请参阅下面的示例,该示例使用 createNewFile() 方法创建一个新的空文件。
导入java.io.File; // 导入文件类
导入 java.io.IOException; // 导入 IOException 类来处理错误
公共类 CreateFileExample{
公共静态无效主要(字符串[]参数){
尝试{
文件 obj = 新文件(“newFile.txt”);
if(obj.createNewFile()){ // 如果返回true,即创建成功
System.out.println(“文件创建成功:” + obj.getName());
}
else{ // 如果返回false,即文件已经存在
System.out.println(“文件已存在”);
}
}
catch (IOException e){ // 如果发生任何错误,捕获异常
System.out.println(“发生错误”);
e.printStackTrace();
}
}
}
输出:
文件创建成功:newFile.txt
获取文件信息
您可以使用 File 类中定义的各种方法来访问文件的不同信息,例如名称、长度、绝对路径、可读性等。 以下示例中使用了一些获取文件信息的方法。
导入java.io.File;
公共类 AccessInfoExample{
公共静态无效主要(字符串[]参数){
// 创建一个对象
文件 obj = 新文件(“newFile.txt”);
如果(obj.exists()){
// 获取文件名
System.out.println(“文件名是:” + obj.getName());
// 获取绝对路径
System.out.println(“文件的绝对路径为:” + obj.getAbsolutePath());
// 检查文件是否可写
System.out.println(“文件可写吗?” + obj.canWrite());
// 检查文件是否可读
System.out.println(“文件可读吗?” + obj.canRead());
// 以字节为单位获取长度
// 它将显示 0,因为我们还没有在文件中写入任何内容
System.out.println(“文件大小以字节为单位:” + obj.length());
}
别的{
System.out.println(“文件名” + obj.getName() + “不存在”);
}
}
}
输出:
文件名是:newFile.txt
文件的绝对路径为:D:JavaProgramming:newFile.txt
文件是可写的吗? 真的
文件可读吗? 真的
文件大小(以字节为单位):0
上述示例的输出可能因文件名、保存路径和大小而异。 如果指定的文件不存在,则会显示“名为 newFile.txt 的文件不存在”。
写入文件
要写入字节数据,请使用 FileOutputStream 类,对于字符,请使用 FileWriter 类。 在下面的示例中,我们将使用 FileWriter 类及其预定义的 write() 方法在“newFile”中写入一些内容。
在开始示例之前需要注意的一件事是,每当您打开一个文件进行写入时,您都需要使用 close() 方法将其关闭。 关闭文件将允许您检索 Java 编译器分配的资源以写入文件。 让我们看一下如何在示例中执行此操作。
导入 java.io.FileWriter; // 导入 FileWriter 类
导入 java.io.IOException; // 导入 IOException 类来处理错误
公共类 WriteExample{
公共静态无效主要(字符串[]参数){
尝试{
FileWriter obj = new FileWriter(“newFile.txt”);
obj.write(“这将被写入 newFile.txt 文件中!”);
obj.close(); // 关闭文件
System.out.println(“我们已经成功写入文件并关闭它。”);
}
捕捉(IOException e){
System.out.println(“发生错误。”);
e.printStackTrace();
}
}
}
输出:
我们已成功写入文件并关闭它。
从文件中读取
您可以使用 FileInputStream 读取字节数据,使用 FileReader 从文件中读取字符数据。 或者,您也可以使用 Scanner 类来读取文件。 由于我们已经使用了 FileWriter 来写入数据,所以在这个例子中我们将使用 Scanner 类来读取数据。 与写入时一样,在读取时也需要关闭打开的文件。
导入java.io.File; // 导入文件类
导入 java.io.FileNotFoundException; // 导入处理错误的类
导入 java.util.Scanner; // 导入 Scanner 类以读取文本文件
公共类 ReadExample{
公共静态无效主要(字符串[]参数){
尝试{
文件 obj = 新文件(“newFile.txt”);
扫描仪 robj = 新的扫描仪(obj);
而(robj.hasNextLine()){
字符串数据信息 = robj.nextLine();
System.out.println(dataInfo);
}
robj.close();
}
捕捉(FileNotFoundException e){
System.out.println(“发生错误。”);
e.printStackTrace();
}
}
}
输出:
这将写入 newFile.txt 文件中!
删除文件
您可以使用 File 类的 delete() 方法删除文件。 如果文件夹为空,您也可以删除整个文件夹。 让我们在下面的示例中删除我们的“newFile.txt”文件。
导入java.io.File; // 导入文件类
公共类 DeleteExample{
公共静态无效主要(字符串[]参数){
文件 obj = 新文件(“newFile.txt”);
如果(obj.delete()){
System.out.println("文件名为" + obj.getName() + "删除成功。");
}
别的{
System.out.println(“文件未删除。”);
}
}
}
输出:
成功删除名为 newFile.txt 的文件。
另请阅读: Java 项目理念和主题
从世界顶级大学在线学习软件课程。 获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。
结论
在这篇文章中,您了解了有关Java 文件处理的所有知识。 Java 提供了各种此类功能,这使其成为全球最流行的编程语言之一。 因此, Java 开发人员在印度的薪水很高也就不足为奇了。 如果你想成为一名 Java 开发人员并获得高薪,upGrad 的免费 Java 在线课程很适合你。
该课程是 upStart 计划的一部分,这是一项无价的技能提升计划。 完成免费课程并获得认证后,您可以进一步选择 upGrad 的全栈开发 PG 认证。 您可以通过项目获得 400 多个小时的学习材料和实践经验。 参加课程并在 Java 编程概念的软件开发领域取得优异成绩。
如何在 Java 中读取和写入文件?
InputStream 类的对象表示可以从中读取字节的数据源,OutputStream 类的对象表示可以写入字节的目的地。 这些对象与 java.io 包的各种类一起使用,以读取和写入文件,从套接字读取和写入数据,以及执行各种其他输入和输出操作。
Java中有哪些不同的文件处理库?
java中提供了几个文件处理库。 每个都有自己的目的和用途。 java.io 包定义了基本的文件处理类。 所以我们可以说它是最通用的文件处理库。 java.nio 包,也称为 New Input/Output 包,主要用于高吞吐量、低延迟和低带宽的数据传输。 它安全、轻量且独立于平台。 该包通过添加基于通道的 API 扩展了 java.io 包。 此外,java.nio.file 包用于文件系统的编程接口。 文件系统是数据的分层组织,与存储信息的物理介质无关。 文件系统支持应用程序之间的文件共享和进程间通信。 此外,java.nio.file.attribute 包用于文件系统属性的类和接口。
Java中文件处理的应用有哪些?
文件处理是众多有趣且有价值的 Java 编程主题之一。 对于 Java 程序员来说,了解如何在 Java 中创建、打开、读取、写入、追加和删除文件至关重要。 这有助于程序员操作文件中的数据。 可以对文件进行很多操作,例如找出文件的长度、读取文件的内容、确定文件是否可写等等。