Java 文件/文件夹

File(文件、路径)

public static void main(String[] args) throws IOException {

//构造方法  无法判断 路径是否存在

win下文件夹名称不区分大小写  文件与文件夹不能重名

File f = new File("D:\\a"); //(文件/文件夹)对象

//File f = new File("D:" + File.separator + "a"); //多系统都能用

//File f2 = new File("a.txt"); //相对路径  当前项目路径

//File f3 = new File("D:\\a","b\\c.txt"); //(父路径, 子路径)

//File f4 = new File(f,"b.txt"); //(File对象, 文件路径)

String s1=File.pathSeparator; //系统 路径分隔符 win:分号  linux:冒号

String s2=File.separator; //系统 文件夹分隔符 win:\\  linux:/

File file2=new File("src"); //相对路径

String path=file2.getAbsolutePath();//获取绝对路径

//F:\java\codetool\eclipsework\Day1224\src

//判断功能

boolean flag = f2.createNewFile());//创建文件 是否成功 已存在不创建

boolean flag = f.mkdirs();//创建(多级)文件夹 是否成功 已存在不创建

boolean flag = f.delete();//删除文件/空文件夹 是否成功  不存在false

boolean flag = f.exists(); //判断文件或者文件夹是否存在

boolean flag = f.isAbsolute(); //判断File对象是否指向绝对路径

boolean flag = f.isDirectory(); //判断File对象是否是文件夹

boolean flag = f.isFile(); //判断File对象是否是文件

boolean flag = f.isHidden();//判断File对象是否有隐藏属性

//获取功能 修改名字功能

File file = f.getAbsoluteFile()); //返回绝对路径的File对象

String str = f.getAbsolutePath(); //返回File对象所指向的绝对路径

File file = f.getParent();

File file = f.getParentFile();

String name = f.getName(); //获取文件/文件夹的名称   "a"

String path = f.getPath(); //返回创建File对象时给的路径   "D:\\a"

long time = f.lastModified(); //获取最后修改时间 毫秒值

//Date d = new Date(2514023311294L);

//System.out.println(d.toLocaleString());

long size = f.length(); //返回文件的字节数

boolean flag = f.renameTo(f2); //修改路径 为 指定File路径

//获取文件夹下的文件

String[] files = f.list(); //返回File对象下所有的文件和文件夹名称

File[] files = f.listFiles(); //返回File数组 无路径 报错 空指针异常

//File[] files=f.listFiles(new Myfilter());  //满足Myfileter()条件的

for (File f : files) {System.out.println(f.getName());}

File[] files = File.listRoots();//返回根目录:哪个盘

getFile(f);//调用  获取多级目录下符合条件的文件

deleteFile(f);//删除指定的目录及内容 需先删除所有子文件和子目录

}

public static void getFile(File dir){//获取多级目录下符合条件的文件

File[] files=dir.listFiles(new Myfilter()); //File过滤器 符合条件 进数组

System.out.println(dir+"文件夹"); //打印文件夹

for(File f:files){

if(f.isDirectory()){getFile(f);} //文件夹  继续获取

else{System.out.println(f);} //文件  打印

}

}

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

public class Myfilter implements FileFilter {//过滤器实现类   点出抽象方法

@Override

public boolean accept(File pathname) { //pathname 每一个 文件名

if(pathname.isDirectory()){return true;} //文件夹直接放行

return pathname.getName().toLowerCase().endsWith(".java");

} //文件名  转小写   是否以.java结尾   true/false

}

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

class MyFilter implements FilenameFilter{

public boolean accept(File dir, String name) {

return name.endsWith(".java");

}

}

File parent = new File("b");

File f3 = new File(parent,"c.txt");

if(!parent.exists()) {parent.mkdirs();}

System.out.println(f3.createNewFile());

public static void getFile(File file) {//获取多级目录下符合条件的文件

if(file.isDirectory()) {

File[] files = file.listFiles();

for (File f : files) {

if(f.isFile()) {//判断是否是文件对象

if(f.getName().endsWith(".java")){

System.out.println(f.getName());

}

}else if(f.isDirectory()){//是一个目录对象

 

getFile(f);

System.out.println(f.getName());

}

}

}

}

public static void deleteFile(File file) {//删除指定目录下所有文件和目录

if(file.isDirectory()) {

File[] files = file.listFiles();

for (File f : files) {

if(f.isFile()) {System.out.println(f.getName()); f.delete();}

else if(f.isDirectory()) {deleteFile(f);}

}

System.out.println(file.getName()); file.delete();//干掉自己

}

}

IO异常处理

public class Demo01 {

public static void main(String[] args) {

FileOutputStream fos=null;

try {

fos2 = new FileOutputStream("F:\\java\\a.txt");

fos2.write("你好,小猪佩奇".getBytes());

//System.out.println(2 / 0);

} catch (IOException e) {

e.printStackTrace();

throw new RuntimeException("文件写入失败,重试");

}finally{

try {

if(fos2!=null){

fos2.close();

}

} catch (IOException e) {

e.printStackTrace();

throw new RuntimeException();

}

}

method02();

}

猜你喜欢

转载自www.cnblogs.com/javscr/p/10247911.html