delete.java什么意思 java file类delete()方法无法删除文件
大家好,今天来为大家分享delete.java什么意思的一些知识点,和java file类delete()方法无法删除文件的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!
java delete 命令删掉的文件怎么恢复
java删除文件或文件夹的具体步骤:
1、验证传入路径是否为正确的路径名(Windows系统,其他系统未使用)
//验证字符串是否为正确路径名的正则表达式
private static String matches="[A-Za-z]:\\\\[^:?\"><*]*";
//通过 sPath.matches(matches)方法的返回值判断是否正确
// sPath为路径字符串
2、通用的文件夹或文件删除方法,直接调用此方法,即可实现删除文件夹或文件,包括文件夹下的所有文件
/**
*根据路径删除指定的目录或文件,无论存在与否
*@param sPath要删除的目录或文件
*@return删除成功返回 true,否则返回 false。
*/
public boolean DeleteFolder(String sPath){
flag= false;
file= new File(sPath);
//判断目录或文件是否存在
if(!file.exists()){//不存在返回 false
return flag;
} else{
//判断是否为文件
if(file.isFile()){//为文件时调用删除文件方法
return deleteFile(sPath);
} else{//为目录时调用删除目录方法
return deleteDirectory(sPath);
}
}
}
3、实现删除文件的方法
/**
*删除单个文件
*@param sPath被删除文件的文件名
*@return单个文件删除成功返回true,否则返回false
*/
public boolean deleteFile(String sPath){
flag= false;
file= new File(sPath);
//路径为文件且不为空则进行删除
if(file.isFile()&& file.exists()){
file.delete();
flag= true;
}
return flag;
}
4、实现删除文件夹的方法
/**
*删除目录(文件夹)以及目录下的文件
*@param sPath被删除目录的文件路径
*@return目录删除成功返回true,否则返回false
*/
public boolean deleteDirectory(String sPath){
//如果sPath不以文件分隔符结尾,自动添加文件分隔符
if(!sPath.endsWith(File.separator)){
sPath= sPath+ File.separator;
}
File dirFile= new File(sPath);
//如果dir对应的文件不存在,或者不是一个目录,则退出
if(!dirFile.exists()||!dirFile.isDirectory()){
return false;
}
flag= true;
//删除文件夹下的所有文件(包括子目录)
File[] files= dirFile.listFiles();
for(int i= 0; i< files.length; i++){
//删除子文件
if(files[i].isFile()){
flag= deleteFile(files[i].getAbsolutePath());
if(!flag) break;
}//删除子目录
else{
flag= deleteDirectory(files[i].getAbsolutePath());
if(!flag) break;
}
}
if(!flag) return false;
//删除当前目录
if(dirFile.delete()){
return true;
} else{
return false;
}
}
5、main()方法
public static void main(String[] args){
HandleFileClass hfc= new HandleFileClass();
String path="D:\\test\\folder1\\exam1";
boolean result= hfc.CreateFolder(path);
System.out.println(result);
path="D:\\test\\folder2";
result= hfc.DeleteFolder(path);
System.out.println(result);
}
Java中的几个问题
1. super()与this()的区别?
=======================================================
对应构造方法
this(有参数/无参数)用于调用本类相应的构造函数
super(有参数/无参数)用于调用父类相应的构造函数
this表示当前对象,也就是当前类对象,super表示当前类的父类。
2.作用域public,protected,private,以及不写时的区别?
=======================================================
public指的是在任何地方都可以访问到
protected同一个类中同一个包中或者不同包中的子类对象
private只有在同一个类中
对应给出个表格
同一个类中同一个包中不同包中子类对象任何地方
Private Yes
Default Yes Yes
Protected Yes Yes Yes
Public Yes Yes Yes Yes
3.在JAVA中,如何跳出当前的多重嵌套循环?
=======================================================
把continue和break的作用都写出来
break语句的作用
(1)只能在循环体内和switch语句体内使用break语句。
(2)当break出现在循环体中的switch语句体内时,其作用只是跳出该switch语句体。
(3)当break出现在循环体中,但并不在switch语句体内时,则在执行break后,跳出本层循环体。
(4)在循环结构中,应用break语句使流程跳出本层循环体,从而提前结束本层循环。
continue语句作用
(1) continue语句的一般形式为:contonue;
(2)其作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环的条件判定。
for(int i= 1; i<= 10; i++){
if(i= 5){
continue;
}else{
System.out.println(i)
}
}
如果是这样,那么当到5的时候不打印,其他打印 1,2,3,4,6,7,8,9,10没有5
for(int i= 1; i<= 10; i++){
if(i>= 5){
continue;
}else{
System.out.println(i)
}
}
如果这样,那么打印1,2,3,4
4.一个“.java”源文件中是否可以包括多个类(不是内部类)?有什么限制?
=======================================================
1).可以;2).最多只能有一个public类;3).文件名必须和public的类名一致。
这个说的很正确
5.排序都有哪几种方法?
=======================================================
插入排序、交换排序(冒泡排序和快速排序)、归并排序、选择排序。
6. Overload(编译时的多态)和Override(运行时的多态)的区别?
=======================================================
overload是方法重载,用在同一个类中,是几个方法的名字相同,返回值相同,但是参数列表不同,举例来说就像构造函数,可以后多个构造函数,并且每个的参数列表都不同,这样可以用多种方式构造对象。
override是方法覆盖,用在父子类中,是方法名字相同,参数列表也相同,声明形式都相同,但是子类方法的权限不允许小于父类,不允许抛出比父类更多的异常。调用子类的方法与父类的同名方法无关,在子类中完全覆盖了父类的方法。
7. Final类有什么特点?
=======================================================
加于类,方法前面的话,作用为限制继承
加于属性前面,不可变,初始化时机只有两个,其一,在定义的时候;其二,在构造方法里面初始化
加于本地变量,方法参数前面:
不能再被赋值(变量,私有类型)
不能被整体替换为另一个内存,但里面的属性可以修改(类)
不可变类(String,BigDecimal)虽为类,但无整体部分可言,所以不能再被赋值
8.&和&&的区别?
=======================================================
&位运算符&按位与(AND) c= a& b a和b位数比较同1出1否则出0
&&且 a&&b则是当 a为真且b为真的时候才为真如果a不为真,那么不去判断b结果为假
9. GC是什么?为什么要有GC?
=======================================================
GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。
10. Math.round(11.5)等於多少? Math.round(-11.5)等於多少
=======================================================
Math.round(11.5)= 12
Math.round(-11.5)=-11
java file类delete()方法无法删除文件
通过fileTxt[ j ],看你是循环删除,你判断了文件是否存在,但是没有判断是否是文件夹、文件夹里是否还有文件
因为文件夹里有文件时,执行delete()是不成功的
此外,你在删除的文件,有可能正被其他人或程序打开,这个时候删除也不会成功
参考Java API的java.io.File类:
delete
public boolean delete()
删除此抽象路径名表示的文件或目录。如果此路径名表示一个目录,则此目录必须为空才能删除。
文章分享结束,delete.java什么意思和java file类delete()方法无法删除文件的答案你都知道了吗?欢迎再次光临本站哦!