黑马程序员技术交流社区
标题:
分享自己写的几个File程序
[打印本页]
作者:
ò壞尛孩
时间:
2014-4-26 19:34
标题:
分享自己写的几个File程序
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:}离黑马不远了!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2