——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——
io中文件的操作
File f=new File(“c:/a”);
1:关于文件的操作,文件的创建:createNewFile ,文件的删除:delete 返回的值都是boolean
2:判断文件是否存在 : exists() 返回boolean ,创建文件夹 : mkdir() 创建一级目录 mkdirs() 创建多个目录
3:判断是否是文件 : isFile() 返回boolean 判断是否是文件夹 : isDirectory() ff.isHidden()判断文件是否隐藏
4:windows中删除文件的原理,如果文件夹里有文件,先删除文件,然后删除文件夹。
package com.itheima1.www;
import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
/**
*
* @author myluo
*
*/
public class IOFile {
public static void main(String[] args) {
// method1();
// method2();
// method3();
// method4();
File f=new File("e:/kankan");
//method5(f);
int i=-1;
// method6(f,i);
method6(f);
}
//文件的删除,windows删除文件的原理,如果文件夹里有文件,先删除文件,然后删除文件夹。。。
private static void method6(File f) {
// TODO Auto-generated method stub
//判断文件是否存在
if (f.exists()) {
File [] file=f.listFiles();
for (File ff : file) {
//判断是否是文件夹
if (ff.isDirectory()) {
method6(ff);
}else{
//如果是文件就删除。。
ff.delete();
}
}
//文件删除完,就删除文件夹
f.delete();
}
}
//遍历文件 打印层级关系
private static void method6(File f,int i) {
// TODO Auto-generated method stub
i++;
File [] file=f.listFiles();
for(File ff: file){
if(ff.isDirectory()){
method6(ff,i);
}
execute(getNbsp(i)+ff.getName());
}
}
//打印空格
private static String getNbsp(int num){
StringBuffer sb=new StringBuffer();
for(int i=0;i<num;i++){
sb.append("|---");
}
return sb.toString();
}
//用递归的方法遍历文件
private static void method5(File f) {
// TODO Auto-generated method stub
File [] file=f.listFiles();
int i=0;
for(int j=0;j<file.length;j++){
i++;
if(file[j].isDirectory()){
method5(file[j]);
}else{
execute(file[j].toString());
}
}
}
//根据文件的后缀名过滤文件(filter),
private static void method4() {
// TODO Auto-generated method stub
File f=new File("E:\\迅雷下载");
String [] str= f.list(new FilenameFilter(){
@Override
//file 文件的目录 name 文件的名字
public boolean accept(File dir, String name) {
// TODO Auto-generated method stub
return name.endsWith(".exe");//文件是否符合此后缀? true: false;
}
});
for(String ss:str){
execute("doc==="+ss);
}
execute("=====================================================");
//获取指定文件夹下的文件 1:File f=new File("c:/"); String [] str=f.list();
//方法2: File f=new File("c:/"); f.
File fe=new File("c:/");
File [] ff=fe.listFiles();
for(File d:ff){
execute("e盘下所有文件:"+d+"==="+d.length());
}
}
//文件信息的获取
private static void method3() {
File f1=new File("f:/a.txt");
execute("获取文件名字:"+f1.getName());
execute("获取文件父目录:"+f1.getParent());
execute("获取文件的绝对流经:"+f1.getAbsolutePath());
execute("获取文件的大小:"+f1.length());
File f2=new File("f:/a1.txt");
execute("修改文件的名:"+f1.renameTo(f2));
//获取所有磁盘
File [] str= f1.listRoots();
for(File a: str ){
execute("磁盘:"+a);
File f=new File(a.toString());
String[] list = f.list();
execute("=========================================================");
}
//获取指定文件下的所有文件
File f12=new File("F:/BaiduYunDownload/Java高级视频_IO输入与输出/第三部分");
String[] list = f12.list();
for(String s:list){
execute("文件:"+s);
}
File fl=new File("f:/");
String [] st= fl.list();
for(String ss:st){
execute("f==="+ss);
}
}
//关于文件的操作,文件的创建:createNewFile ,文件的删除:delete 返回的值都是boolean
//判断文件是否存在 : exists() 返回boolean ,创建文件夹 : mkdir() 创建一级目录 mkdirs() 创建多个目录
//判断是否是文件 : isFile() 返回boolean 判断是否是文件夹 : isDirectory()
private static void method2() {
// TODO Auto-generated method stub
File f7=new File("E:/a/luo.txt");
try {
f7.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
boolean is=f7.exists();
boolean fl=f7.isFile();
boolean flg=f7.isDirectory();
if (is) {
if (fl) {
execute("是文件");
} else {
execute("不是文件");
}
if (flg) {
execute("是文件夹");
} else {
execute("不是文件夹");
}
}
File f1=new File("e:/abc/ab/a");
boolean flag5=f1.mkdirs();
if(flag5){
execute("文件夹创建成功");
}else{
execute("文件夹创建失败");
}
File file=new File("fei.txt");
//创建文件result
boolean flag;
//删除文件result
boolean flag2;
//文件是否存在result
boolean flag3;
try {
flag = file.createNewFile();
if(flag){
execute("文件创建=="+true);
}else{
execute("文件创建=="+false);
}
File file2=new File("xx.txt");
flag3=file2.exists();
if(flag3){
execute("文件存在");
}else{
execute("文件不存在");
}
flag2=file.delete();
if(flag2){
execute("删除成功");
}else{
execute("删除失败");
}
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
//方法一 文件与file类的出现弥补了流的不足,流是用来操作数据的,不能操作文件,file可以弥补流的不足
private static void method1() {
// TODO Auto-generated method stub
//file的创建方式1
File file1=new File("luo.txt");
//file的创建方式2
File file2=new File("E:/a","fei.txt");
//file的创建方式3
File file3=new File("E:/a");
File file4=new File(file3,"xiao.txt");
execute(file1+" : "+file2+ " : "+file4);
//分隔符的跨平台
File file5=new File("e:/a/luo.txt");
File file6=new File("e:"+File.separator+"a"+File.separator+"luo.txt");
execute(file5+"======="+file6);
}
private static void execute(String str){
System.out.println(str);
}
}