1、File常见方法- package com.itheima;
- import java.io.*;
- /*
- File类常见方法:
- 1、创建;
- boolea createNewFile();在制定位置创建文件,如果文件已经创建,则不创建,返回false
- 和输出流不一样,输出流对象以建立文件,而且文件已经存在,则覆盖
- static File createTempFile(String prefix, String suffix)
- 临时文件XXX.tmp
- mkdir()根据指定的file路径创建1级目录//不用抛异常
- mkdirs()创建多级文件夹
- 2、删除
- boolean delete()
- void deleteOnExit()即使发生异常 JVM也能关掉file,在程序退出时删除指定文件
- 3、判断
- boolean canExecute() 能否被执行
- boolean exists()文件是否存在
- boolean isAbsolute() 判断是否为绝对路径
- boolean isHidden() 判断是否隐藏 JAVA无法读取影藏文件
- boolean isFile() 测试此抽象路径名表示的文件是否是一个标准文件。
- boolean isDirectory() 判断是否为路径
-
- 4、获取信息
- String getName()
- String getParent() //该方法返回的是绝对路径中的文件父目录,如果是相对路径,返回null
- //如果相对路径有上一层目录那么该目录就是返回的结果。
- File getParentFile()
- String getPath()
- String getAbsolutePath() 返回绝对路径字符串
- File getAbsoluteFile() 返回绝对路径对象
- long lastModified() //返回最后一次修改的时间
- long length() //返回文件的长度
-
- */
- class FileDemo
- {
- public static void main(String[] args) throws IOException
- {
- //System.out.println("Hello World!");
- //method_5();
- //method_3();
- //method_2();
- //method_1();
- }
- public static void method_1()throws IOException
- {
- File f=new File("c:/file.txt");
- f.deleteOnExit();
- sop("creat:"+f.createNewFile());
- sop("delete:"+f.delete());
- }
- public static void method_2()throws IOException
- {
- File f=new File("c:/file.txt");
- sop("creat:"+f.createNewFile());
- sop("exists:"+f.exists());
- sop("execute:"+f.canExecute());
- //创建文件夹
- File f2=new File("c:/abc/AD/DDW/www/dwd");
- sop("mkdir:"+f2.mkdirs());
- }
- public static void method_3()throws IOException
- {
- File f=new File("c:/file.txt");
- //记住判断一文件对象是否是文件或者目录时,必须要先判断该文件对象封装的
- f.createNewFile();
- f.mkdirs();
- sop("dir:"+f.isDirectory());
- sop("file:"+f.isFile());
- }
- public static void method_4()
- {
- File f=new File("c:/a.txt");
- sop("path:"+f.getPath());
- sop("abspath:"+f.getAbsolutePath());
- sop("parent:"+f.getParent());
- }
- public static void method_5()throws IOException
- {
- File f1=new File("c:\\Test.txt");
- f1.createNewFile();
- File f2=new File("c:\\haha.txt");
- //f2.createNewFile();
- sop("rename:"+f1.renameTo(f2));
- }
- public static void sop(Object obj)
- {
- System.out.println(obj);
- }
- }
复制代码 2、打印指定规则的文件列表
- package com.itheima;
- import java.io.*;
- class FileDemo2
- {
- public static void main(String[] args)
- {
- File f=new File("D:\\Demo\\");
- //System.out.println("Hello World!");
- String[] arr=f.list(new FilenameFilter(){
- public boolean accept(File dir,String name)
- {
- return name.endsWith(".java");
- }
-
- });
- System.out.println("len:"+arr.length);
- for(String name:arr)
- System.out.println(name);
- }
- }
复制代码
3、列出指定目录下所有内容包括子文件夹
- /*
- 列出制定目录下文件或者文件夹,包含子目录中的内容
- 也就是列出指定目录下所有内容
- */
- import java.io.*;
- class FileDemo3
- {
- public static void main(String[] args)
- {
-
- //System.out.println("Hello World!");
- File dir=new File("d:\\JAVA");
- showDir(dir);
- toBin(6);
- }
- public static void toBin(int num)
- {
- if(num>0){
- toBin(num/2);
- System.out.println(num%2);
- }
- }
- public static void showDir(File dir)
- {
- System.out.println(dir);
- File[] files=dir.listFiles();
- for(File f:files)
- {
- if(f.isDirectory())
- showDir(f);
- else System.out.println(f);
- }
- }
- }
复制代码
4、建立一个java文件列表文件
- /*
- 将一个指定目录下的java文件的绝对路径,存储到一个文本文件中
- 建立一个java文件列表文件
- 思路:
- 1、对指定的目录进行递归
- 2、获取递归过程所有的java文件的路径
- 3、将这些路径存储到集合中
- 4、将集合中的数据写入到一个文件中
- */
- import java.io.*;
- import java.util.*;
- class FileListDemo
- {
- public static void main(String[] args) throws IOException
- {
- File dir=new File("d:\\Demo");
- List<File>list=new ArrayList<File>();
- fileToList(dir,list);
- System.out.println(list.size());
-
- File file=new File(dir,"javalist.txt");
- writeToFile(list,file.toString());
- //System.out.println("Hello World!");
- }
- public static void fileToList(File dir,List<File>list)
- {
- File[] files=dir.listFiles();
- for(File f:files)
- {
- if(f.isDirectory())
- fileToList(f,list);
- else
- if(f.getName().endsWith(".java"))
- list.add(f);
- }
- }
- public static void writeToFile(List<File>list,String javaListFile)throws IOException
- {
- BufferedWriter bufw=null;
- try{
- bufw=new BufferedWriter(new FileWriter(javaListFile));
- for(File f:list)
- {
- String path=f.getAbsolutePath();
- bufw.write(path);
- bufw.newLine();
- bufw.flush();
- }
- }
- catch(IOException e){
- throw e;
- }
- finally{
- try
- {
- if(bufw!=null)
- bufw.close();
-
- }
- catch(IOException e)
- {
- throw e;
- }
- }
- }
- }
复制代码
5、删除目录
- /*
- 在window中,删除目录从里面往外删除的
- 既然是从里往外删除,就需要用到递归
- */
- import java.io.*;
- class FileDeleteDemo
- {
- public static void main(String[] args)
- {
- File dir=new File("d:\\shiyan");
- removeDir(dir);
- //System.out.println("Hello World!");
- }
- public static void removeDir(File dir)
- {
- File[] files=dir.listFiles();
- for(File f:files)
- {
- if(f.isDirectory())
- removeDir(f);
- else
- System.out.println(f.toString()+":-files-:"+f.delete());
- }
- System.out.println(dir+"::dir::"+dir.delete());
- }
- }
复制代码
技术score好难得啊!版主施舍点吧!{:3_65:}离黑马不远了!
|