IO操作解析:从数据持久化到File类的原理和应用

IO概述

IO操作解析:从数据持久化到File类的原理和应用

回想一下我之前写过的过程是在记忆中。程序运行后,这些数据就消失了。等待下一次要使用这些数据,但是它消失了。我应该怎么办?您可以保存所有计算的数据吗?当下一个程序启动时,请阅读这些数据并继续使用它?实际上,为了存储数据持久性,除了内存之外,还必须将数据存储在内存中,以将数据存储到其他持久设备(硬盘,光盘,U磁盘等)之外。

需要此操作才能将数据存储在持久设备上的存储器中,作为输出(写入)输出操作。当将持久设备上的数据读取到输入(读取)输入操作时。因此,我们将此输入和输出操作称为IO操作。

文件类

文件类是文件文件和目录路径的抽象表示。也就是说,将文件或目录(文件夹)封装在Java中的文件对象中。换句话说,如果我们要在硬盘上操作文件,否则文件夹只能找到文件。因此,我们必须在可以操作文件或文件夹的文件类中研究这些功能?

文件类的构造函数

通过构造方法创建文件对象,我们将证明:

包装inter;

导入java.io.file;

公共类演示{

公共静态void main(string [] args){{{

//文件构造函数演示

字符串pathName =“ e:\\ java_code \\ hello.java”;

文件f1 = new File(pathName); //将Test22文件封装到文件对象中。笔记;您可以不包装文件或文件夹即可成为对象。

system.out.println(f1);

文件f2 =新文件(“ e:\\ java_code”,“ hello.java”);

System.out.println(F2);

//将油漆包装到文件对象中。

文件dir =新文件(“ e:\\ java_code”);

文件f3 =新文件(dir,“ hello.java”);

System.out.println(F3);

// e:\ java_code \ overlo.java

// e:\ java_code \ hello.java

// e:\ java_code \ hello.java

获取文件类

创建文件对象后,文件类中有常见的方法,可以获取与文件相关的信息

该方法演示如下:

包装inter;

导入java.io.file;

公共类演示{

公共静态void main(string [] args){{{

//创建文件对象

文件文件=新文件(“ demo.java”);

//获取文件的绝对路径,即完整路径

字符串abspath = file.getabsolutepath();

//文件中封装的路径是什么。

字符串路径= file.getPath();

//获取文件名

字符串fileName = file.getName();

//获取文件大小

长尺寸= file.length();

system.out.println(“ abspath =”+abspath);

system.out.println(“ path =”+path);

system.out.println(“ filename =”+filename);

system.out.println(“ size =”+size);

// abspath = f:\编程语言\ java \ project \ project \ typeinfo \ demo.java

//path=demo.java

//filename = demo.java

// size = 0

创建文件和文件夹等的删除。

通常在上面介绍的情况下,我们知道您可以通过文件获得诸如文件名,文件路径(目录)和其他信息之类的信息。接下来说明使用文件类用来创建和删除文件。代码演示:

包装inter;

导入java.io.file;

导入java.io.ioexception;

公共类演示{

pbble静态变化

//操作文件或文件。

文件文件=新文件(“ f:\\ file.txt”);

//创建文件。如果文件不存在,则如果文件存在,则创建true,并且不会创建false。如果路径是错误的,请进行ioexception。

boolean b1 = file.createnewfile();

system.out.println(“ b1 =” + b1);

// ----------删除文件操作--------------注意:不要访问回收站。谨慎使用-------

boolean b2 = file.delete();

system.out.println(“ b2 =” + b2);

// ------------您需要确定文件是否存在----------------

boolean b3 = file.exists();

system.out.println(“ b3 =” + b3);

// ---------------------------------------------------------------------------------------------------删除 - ---------------

文件dir =新文件(“ f:\\ abc”);

// mkdir()创建一个单一目录。

boolean b4 = dir.mkdir();

system.out.println(“ b4 =” + b4);

文件dir1 = new文件(“ f:\\ abcd \\ ef \\ gh”);

//dir.mkdirs();创建一个多层目录

boolean b5 = dir1.mkdirs();

system.out.println(“ b5 =” + b5);

//删除目录时,如果目录中存在内容,则无法直接删除。

boolean b6 = dir.delete();

//仅在删除目录的内容后,请确保目录为空。此时可以删除此目录。

system.out.println(“ b6 =” + b6);

// ------------------------------------------------------------------------- -----------------------

文件f =新文件(“ f:\\ javahaha”); //要确定它是文件还是目录,您必须首先判断存在。

// f.mkdir(); // f.createnewfile();

system.out.println(f.Isfile());

system.out.println(f.isdirectory());

// b1 = true

// b2 = true

// b3 = false

// b4 = true

// b5 = true

// b6 = true

// 错误的

// 错误的

ListFiles()方法简介

这些文件存储在目录(文件夹)中,因此如何将目录中的所有文件或文件夹中的所有文件或文件夹获取?

该方法演示如下:

包装inter;

导入java.io.file;

公共类演示{

公共静态void main(string [] args){{{

文件dir =新文件(“ f:\\源代码学习”);

//在目录中获取当前文件和文件夹名称。

字符串[]名称= dir.list();

for(字符串名称:名称){

system.out.println(name);

//在目录中获取当前文件和文件对象。只要获得文件对象,您就可以获取所需的信息

file [] files = dir.listfiles();

对于(文件文件:文件){

system.out.println(file);

//ace-amaster.zip

// nfine -n​​fine -amaster

//nfine-nfine-amaster.zip

// Sugarsite-Master

//sugarsite-amaster.zip

// Taskmanager-Master

//taskmanager-amaster.zip

//webdemo.rar

// websocket聊天室

//时机框架演示源代码

//操作日志

//通过秋天的开源项目

// F:\源代码Learning \ Ace-Master.zip

// f:\源代码学习\ nfine-nfine-Master

// f:\源代码学习\ nfine-nfine-amaster.zip

// F:\源代码学习\ Sugarsite-Master

// F:\源代码学习\ Sugarsite-Master.zip

// F:\源代码学习\ Taskmanager-Master

// f:\源代码学习\ taskmanager-master.zip

// f:\源代码学习\ webdemo.rar

// f:\源代码学习\ websocket聊天室

// f:\源代码学习\时间框架演示源代码

// f:\源代码学习\操作日志

// f:\源代码学习\开源项目通过秋季

注意:在指定目录中获取文件或文件夹时,必须满足以下两个条件

文件过滤器

通过ListFiles()方法,我们可以在目录中获取所有文件和文件夹,但是我们可以过滤吗?例如,我们是否只需要目录中指定的扩展名的文件,还是包含某些关键字的文件夹?我们可以先将所有文件和文件夹首先获取,然后遍历当前采集的所有内容。筛选在遍历期间进行了筛选,但是此动作有些麻烦。 Java为我们提供了解决此问题的相应功能。检查文件API,在审核过程中查找文件类中的ListFiles方法,然后接受指定的过滤器。

测试课

导入java.io.file;

导入java.io.filenamefilter;

公共课程测试{

公共静态void main(string [] args){{{

//获取扩展名称.java所有文件

//创建文件对象

文件文件=新文件(“ f:\\源代码学习”);

//用指定的扩展名获取文件。由于所有文件均已筛选,因此呼叫方法需要传递过滤器

file [] files = file.listfiles(new MyFileFilter());

//通过遍历获得的所有合格文件

对于(文件f:files){

system.out.println(f);

类MyFileFilter实现FileNameFilter {

public boolean accept(file dir,string name){{{

返回名称。Endswith(“。zip”);

// F:\源代码Learning \ Ace-Master.zip

// f:\源代码学习\ nfine-nfine-amaster.zip

// F:\源代码学习\ Sugarsite-Master.zip

// f:\源代码学习\ taskmanager-master.zip

自固定类继承了FileNameFilter滤波器接口

在检查API时,我们发现在ListFiles(FileFilter Filter)中,您也可以接受FileFilter过滤器。它和我们谈论文件名偏置的区别是什么?

当我们需要过滤文件名时,我们可以使用FilenameFilter过滤器。当我们要过滤当前文件或文件夹时,我们可以使用fileFilter。例如,当前目录中的所有文件夹都需要使用FileFilter过滤器。

测试课

导入java.io.file;

导入java.io..filefilter;

公共课程测试{

公共静态void main(string [] args){{{

//获取扩展名称.java所有文件

//创建文件对象

文件文件=新文件(“ f:\\源代码学习”);

//在指定目录中获取文件夹

file [] files = file.listfiles(new fileterbydir());

//通过遍历获得的所有合格文件

对于(文件f:files){

system.out.println(f);

//自定义类继承FileFilter过滤器接口

//文件过滤器

class filefileterbydir实现filefilter {

public boolean accept(file pathname){

return pathName.isdirectory();

// f:\源代码学习\ nfine-nfine-Master

// F:\源代码学习\ Sugarsite-Master

// F:\源代码学习\ Taskmanager-Master

// f:\源代码学习\ websocket聊天室

// f:\源代码学习\时间框架演示源代码

// f:\源代码学习\操作日志

// f:\源代码学习\开源项目通过秋季

递归

识别是指在当前方法中调用这种现象。有两种类型的递归类型,直接递归和间接递归。直接称呼自己为自己的方法。间接递归可以调用方法B方法B,B方法B方法C方法,C方法C方法A方法。

递归代码演示,计算1-N的总和,完成递归

公共类diguidemo {

公共静态void main(string [] args){{{

//计算1〜NUM的总和,使用递归完成

int n = 5;

int sum = getsum(n);

system.out.println(sum);

公共静态int getum(int n){

如果(n == 1){

返回1;

返回n + getsum(n-1);

注意:递归必须受到限制,以确保可以停止递归递归,否则堆栈内存溢出将发生。尽管递归条件有限,但递归时间的数量不应太多。否则,将发生堆栈内存溢出。

在所有子目录中递归打印文件路径

编写一种在指定目录中打印文件路径的方法并调用该方法。要求:如果指定的目录具有子目录,则打印目录中的文件路径。

代码演示

导入java.io.file;

公共课程测试{

公共静态void main(string [] args){{{

文件文件=新文件(“ f:\\源代码学习\\ nfine -n​​fine -amaster \\ nfine”);

getfileall(file);

//获取指定目录和儿童目录中的所有文件

public static void getfileall(文件文件){

文件[]文件= file.listfiles();

//遍历当前目录中的所有文件和文件夹

对于(文件f:files){

//确定当前遍历是否是目录

if(f.isdirectory()){{

//是目录,继续获取此目录中的所有文件和文件夹

getfileall(f);

} 别的 {

//不是目录,这意味着当前F是文件,然后打印它

system.out.println(f);

你可能想看:
« 上一篇
下一篇 »

相关推荐

java中什么是冒泡,冒泡算法

2026年09月06日

27阅读

java中冒号,java双冒号

2026年09月06日

26阅读

java中的->,java中的是什么意思

2026年09月06日

24阅读

java中的super用法,Java中super的说明

2026年09月06日

28阅读

java中反射的应用,java中反射的应用场景

2026年09月06日

25阅读

java中开关的定义,Java关键字有哪些

2026年09月06日

26阅读