黑马程序员_File类

android培训java培训、期待与您交流!

File:

File file = new File(“c:\\”,“1.txt”):表示可以将一个已存在或者不存在的文件或者目录封装成file对象。

File file = new File(“c:\\nihao\\1.txt”):表示系统分隔符:+System.getProperty(“file.separator”)+

而现在则是:file.separator字符串类型,file.separatorChar字符类型。系统默认名称分隔符。(;:路径分隔符)

File类常见方法:

1,创建。boolean createNewFile();在指定位置创建文件,如果存在该文件则创建失败返回false。

和输出流不一样,输出流建立则是覆盖[强制建立]。(临时文件创建..)

注意:

File file = new File(“adn”);//创建目录:file.mkdir();一级file.mkdirs();多级。boolean类型。

File file = new File(“abd.txt”)//创建文件

2,删除

boolean delete();删除调用此方法的文件对象。

boolean deleteOnExit();同上。在退出系统时删除指定文件。(一般使用在临时文件)。

3,判断

boolean canExecute();判断文件是否可执行。

intcompareTo();比较

boolean exists();文件是否存在[使用频率很高,文件存在了才可以使用流,不然就会抛出异常]

isFile();isDirectory();对一个文件的判断是文件或目录时,必须判断是否存在

isHidden();是否隐藏。Java在取文件时不判断是不是隐藏,所以程序员需要判断。。

isAbsolute();判断是否为绝对路径。[不判断文件是否存在]

4,获取信息

getName();getPath(); getAbsolutePath();[路径和文件是否存在无关]length();[返回为long]

lastModified();获取最后一次修改的时间;返回为long,毫秒值。

getParent();//返回的是绝对路径中的父目录[调用者上一层的目录]。不然返回为null。

f1.renameTo(f2);返回为boolean,类似不同文件里时剪贴。

listRoots(),获取盘符,单个。

list();获取指定目录下的所有文件以及文件夹,还含有隐藏文件。。路径不对则为null。

listFiles();返回为File[]对象数组,可操作。开发使用这个。

List(FilenameFilter filter);文件名过滤器FilenameFilter是接口,实现它的实例可以过滤..

File dir=new File(“d:\\java123\\day23”);

String[]arr=dir.list(new FIlenameFilter(){

public boolean accept(File dri,String name){

SOP(dir+”  ”+name);

return name.endWith(“.bmp”);

}

});//匿名类的使用,和dir,name都是什么都可以知道。

/*列出指定目录下文件或者文件夹,包含子目录中的内容。即指定目录下的所有内容*/

main(){Filedir=new File(“d:\\java1233”) showDir(dir);}

public static voidshowDir(File dir){

SOP(dir);

File[] files=dir.listFiles();

fFor(int x=0;x<files.length;x++){

if(files[x].isDirectory())//判断每一个files[x]是不是目录,是就再次调用自己。递归!

showDir(files[x]);

else SOP(files[x]);

}}      增加”|--”,好看显示。<2008视频>

递归:1,限定条件,也就是判断是否进行递归的条件。

void showA(){showB();Sop(A);}     求和:getSum(int n){if(n==1)

void showB(){showC();Sop(B);}                                        return1;

void showC(){Sop(C);}//调用A                      return n+getSum(n-1);}//递归会出现内存溢出

 2,要注意递归的次数,避免内存溢出。

/*删除一个带有内容的目录,删除原理:从里往外删。递归使用。*/

C盘里的隐藏文件是不能被java访问。

public static voidremoveDir(File dir){File[] files=dir.listFiles();

for(intx=0;x<files.length;x++){

if(!files[x].isHidden()&&files[x].isDirectory()) removeDir(files[x]);//避开隐藏

else System.out.println(files[x].toString()+”....”+files[x].delete());

}System.outprintln(dir+”....dir....”+dir.delete());}

/*讲一个指定目录下的java文件的绝对路径,存储到一个文本文件中*/

思路:1,对指定的目录进行递归2,获取递归过程所得的java文件的路径3,将这些路径存储到集合中。4,将集合中的数据写入到一个文件中。[玩递归来一方法,存文件,对文件进行操作]

class   mingcheng {

publicmain(){  File dir = new File(“d:\\java”);  List<File> list=newArrayList<File>();

fileToList(dir,list);Sop(list.size());/将集合[],写到本地硬盘中。

File file = newFile(dir,“javalist.txt”);

writeToFile(list,file.toString());}//下方法演示。这里字符串可以,file对象也可以的。

public static voidfileToList(File dir,List<File> list){

File[] files = dir.listFiles();

for(File file : files){

if(file.isDirectory()) fileToList(file,list);

else{if(file.getName().endWith(“.java”))  list.add(file);}

}}}

-------------------------------------------------------------------------------------------------------------

publicstatic void writeToFile(List<FIle> list,StringjavaListFile) throws IOException{

BufferedWriterbufw=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;}//不想抛,可以抛RuntimeException

finally{  try{

 if(bufw!=null) bufw.close();

 }catch(IOException e){throwe;}}}}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值