黑马程序员-File类的常见方法及使用_Sily孤狼的博客-程序员信息网

技术标签: java  文件操作  树形输出  

------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

File类的常见方法
 1.创建 还有创建临时文件的方法
 boolean createNewFile():在指定位置创建文件,如果该文件已经存在则不创建返回flase
和输出流不一样,输出流对象已建立就创建文件,而文件如果存在则覆盖
 boolean mkDir(): 创建一级目录
 boolean mkDirs(): 创建多级目录
 2.删除
 boolean delete();//删除失败返回false
 void deleteOnExit();在程序退出时删除文件 //防止运行过程中出现异常,而不能执行delete方法
 3.判断 boolean
 canExecute//是否可以执行
 exists(): //文件是否存在
 
 //判断文件对象是否为文件或目录时必须先判断该文件对象封装的内容是否存在,使用exists判断
 isDirectory() //判断是否为目录
 isFile() //判断是否为文件
 isHidden() //是否为隐藏文件
 isAbsolute()//判断绝对路径与文件是否存在无关 在文件没有创建之前就可以进行判断
 4.获取信息
 String getName()
 getPath()
 getParent()//返回绝对路径中的文件父目录  如果获取的是相对路径 返回空 //如果相对路径中有上一层目录,则该目录为返回结果
 String getAbsolutePath() //返回字符串 
 File getAbsoluteFile()  //将绝对路径封装成文件对象
 long lastModified()
 long length()

File类中最常用的方法为listFiles()方法,该方法返回一个File[]数组,我们需要深入理解该方法  

举例说明File类中的listFiles()方法的使用

题目要求:列出指定目录下文件货文件夹,包含子目录中的内容
  也就是列出指定目录下的所有内容,因为目录中还有目录 只要使用同一个列出目录功能的函数完成即可,在列出过程中出现的还是目录的话,还可以再次调用本功能, 这种方式称为递归调用。
  递归要注意:
  1.限定条件
  2.要注意递归的次数,尽量避免内存溢出
 

package com.chuanzhi.io.file;

import java.io.File;
public class FileDemo {
	public static void main(String[] args) {
		File dir = new File("F:\\Users\\Lyongwang\\AndroidLessionsWorkSpace20140802\\JavaPro");
		showDir(dir,0);
	}
	public static String getLevel(int level){//给文件前面添加树形结构
		StringBuilder sbd = new StringBuilder();
		sbd.append("!--");
		for (int i = 0; i < level; i++) {
			sbd.insert(0, "|  ");
		}
		return sbd.toString();
	}
	public static void showDir(File dir,int level){//显示文件夹和文件
		System.out.println(getLevel(level)+dir.getName());
		level++;
		File[] files = dir.listFiles();
		for (int i = 0; i < files.length; i++) {
			if(files[i].isDirectory()){
				showDir(files[i],level);
			}
			else{
				if(files[i].getName().endsWith(".java"))
					System.out.println(getLevel(level)+files[i].getName());
			}
		}
	}
}




版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u010148199/article/details/39056691

智能推荐

PHP正则表达式使用_FLYIT-民工的博客-程序员信息网_用正则表达式提取php

有时候我们需要去获取某个网站的内容、图片、视频……利用PHP来做到这一点,代码如下:$url='http://www.csdn.com';$content=file_get_contents($url);//正则表达式,就获取首页的下面的图片1中的链接吧$pattern='|    查看更多知识库    CSDN知识库    -->    

批量获取股票价格_猄为天人的博客-程序员信息网_批量查看股价

​ 利用网页结构的相似性爬虫的目的,是从网站中 自动化 的 批量 提取数据。事实上,很多网站使用 Javascript 代码来生成网页内容,你的爬虫需要正确解析 Javascript 才能获得你所看到的页面。requests_html 库提供了一个简单的方法来处理应对情况,你只需要在 r = session.get(link) 后,增加一行 r.html.render(),重新运行代码即可。...

Linux使用yum安装JDK_技匠而已的博客-程序员信息网_yum安装jdk

Linux使用yum安装JDK1、使用命令搜索JDK版本yum search java|grep jdk[[email protected] ~]# yum search java|grep jdkldapjdk-javadoc.noarch : Javadoc for ldapjdkopenjdk-asmtools-javadoc.noarch : Javadoc for openjdk-asmtoolsjava-1.6.0-openjdk.x86_64 : OpenJDK Run_1671465600

Keras报错:ValueError: Input 0 is incompatible with layer sequential expected shape=(None, None, 22),_小王做笔记的博客-程序员信息网

ValueError: Input 0 is incompatible with layer sequential: 错误展示提示说明解决方向结果记录错误展示ValueError: Input 0 is incompatible with layer sequential: expected shape=(None, None, 22), found shape=[None, 22, 1]keras 中的 input_shape 和 数据中的 shape 不一致;提示说明expected sha

流计算与批量计算的对比_开发者社区小百科的博客-程序员信息网_大数据流式计算和批量计算的比较

相比于批量大数据计算,流(式)计算整体上还属于较为新颖的计算概念,下面我们从用户/产品层面来理解下两类计算方式的区别。批量计算目前绝大部分传统数据计算和数据分析服务均是基于批量数据处理模型: 使用ETL系统或者OLTP系统进行构造数据存储,在线的数据服务(包括Ad-Hoc查询、DashBoard等服务)通过构造SQL语言访问上述数据存储并取得分析结果。这套数据处理的方法论伴随着关系型数据库在工业界...

keras学习- No module named ' tensorflow.keras ' 报错,看清 tf.keras与keras_Eric_Blog_csdn的博客-程序员信息网_tensorflow.keras报错

环境描述:系统ubantu16.04安装anaconda 版本conda 4.5.4创建虚拟环境 tf-gputensorflow-gpu版本(1.7.0-gpu, 能够import tensorflow)tf-gpu环境下已安装的包:(1)conda install scipy matplotlib scikit-learn scikit-image(2)c...

随便推点

conda 安装keras报错解决办法_Stormreaver的博客-程序员信息网_conda安装keras报错hash

在用conda安装keras的时候,报下列问题安装指令:conda install -c conda-forge keras报错:(py36) C:\Users\Ido&gt;set "KERAS_BACKEND="(py36) C:\Users\Ido&gt;python C:\Users\Ido\AppData\Local\conda\conda\envs\py36\etc\kera..._1671465600

android webview调用摄像头,如何在webview中为Android启用前置摄像头_曹将的博客-程序员信息网

我不太明白,但我可能会有以下两种中的一种,你想要什么 .1)访问摄像头,只在屏幕上显示视频(不捕获图像):html:js:var onFailSoHard = function(e){console.log('failed',e);}window.URL = window.URL || window.webkitURL ;navigator.getUserMedia = navigator.get...

【jenkins 异常】org.eclipse.jgit.errors.InvalidObjectIdException: Invalid id xxxxx_帆影匆匆的博客-程序员信息网

问题描述前段时间遇到一个jenkins 构建失败的问题,详细堆栈如下FATAL: Invalid id: refs/remotes/origin/origin/test^{commit}org.eclipse.jgit.errors.InvalidObjectIdException: Invalid id: refs/remotes/origin/origin/test^{commit} at org.eclipse.jgit.lib.ObjectId.fromHexString(ObjectId.

SVN一些常用命令_shineflowers的博客-程序员信息网_svn di --summarize

SVN 是什么?SVN 是开源的版本控制系统。比CVS更多的特性。一个更好的 CVS?因此SVN 具有大部分CVS拥有的特性。不仅仅是文件受控,目录也加入版本控 制。复制,删除,重命名这些操作都是受控 的。特殊作用的元数据(属性)。提交事务原子性。提交完成之前任何一 个部分都不会正真生效。版本号基于提交,而不是基于文件。提交时的log message也是依附于提交的那个版本。创建分支和标记

Python基础—— dict.get() 与 dict['key'] 的区别_墨飏韶年的博客-程序员信息网_dict gei []

In [1]: a = {'name': 'wang'}In [2]: a.get('age')In [3]: a['age']---------------------------------------------------------------------------KeyError Traceback (m...

『myan』SD2008会后反思云计算_SD2China的博客-程序员信息网

原文链接:http://blog.csdn.net/myan/archive/2008/12/09/3483207.aspx作者:myan今年SD大会最重要的官方话题毫无疑问是云计算。作为主办方,我们正是看到了这一趋势的颠覆性力量,才迫不及待地将它作为今年的主角,尽量地予以强调和渲染。事实证明,这有揠苗助长的嫌疑。不少参会的朋友反映大会的主题未能很好的扣合当前的具体问题,显得有些超前。这是我们应该检讨的。去年的SD把握住了“高负载Web站点设计”这样一个当期热点,给参会者留下了深刻印象。今年在这方面我们确实

推荐文章

热门文章

相关标签