java基础42 File类的构造函数及其方法
本文知识点(目录):
1、IO流(Input Output)
2、IO流技术的运用场景
3、File类的构造函数(方法)
4、File类的一些常用方法
5、实例(解析File类的常用方法)
6、附录1(扫描系统上的盘符和指定目录下的所有文件和文件夹)
7、附录2(在指定目录下,扫描出所有的指定类型的文件)
8、附录3(扫描电脑中所有的文件和文件夹,及下级目录下的所有文件和文件夹。或扫描指定盘符下的所有文件和文件夹)
9、附录4(删除磁盘中指定的文件夹里面的所有文件和文件夹)
1、IO流(Input Output)
IO流技术主要的作用是解决设备与设备之间的数据传输问题,比如:硬盘的数据--读取到-->内存中 内存的数据--读取到-->硬盘中 键盘上的数据--读取到-->内存中
2、IO流技术的运用场景
导出报表、上传大头照、下载、解析xml文件.....等等 (数据保存到硬盘,该数据可以做到永久性保存。数据一般以文件的形式保存到硬盘上。sun使用一个File类来描述文件或者文件夹)
3、File类的构造函数(方法)
File(String pathname):指定文件或者文件夹的路径来创建一个File文件
File(File parent, String child):根据parent抽象路径和child路径名字符串,创建一个新的File实例
File(String parent, String child):
目录分割符:在Windows机器上的目录分隔符是\,在Linux机器上的目录分隔符是/
注意:在Windows上面\与/都可以作为目录分隔符。而且,如果写/的时候,只需要写1个正斜杠即可,而写\的时候,需要写2个反斜杠。
package com.dhb.file; import java.io.File;
import java.io.IOException; /**
* @author DSHORE / 2018-6-22
*
*/
public class Demo1 {
public static void main(String[] args) throws IOException {
File file = new File("F:/a.txt");//指定路径 [构造函数]
file.createNewFile();//创建文件(空文件) [方法] File files = new File("F:\\","b.txt");//第一个参数是路径,第二个参数是要创建文件的文件名 [构造函数]
files.createNewFile();//创建文件(空文件) [方法]
}
}
4、File类的一些常用方法
创建:
createNewFile():在指定位置创建空文件,成功返回true,如果已存在就不再创建了返回false
mkdir():在指定位置创建目录,这之后创建最后一级目录,如果上级目录不存在就抛出异常.
mkdirs():在指定位置创建目录,这也会创建路径中所有不存在的父目录
renameTo(File dest):重命名文件或文件夹。文件不同时,相当于文件的剪切,剪切的时候不能操作非空文件夹。移动/重命名成功返回true,失败返回false
删除:
delete() :删除一个文件或者空文件夹,如果文件夹不为空,则不能删除,成返回true,失败返回false
deleteOnExit(): 在虚拟机终止时,请求删除此抽象路径名的文件或者目录,保证文件异常时也可以删除文件
判断:
exists():判断指定的文件或者文件夹是否存在
isFile():判断是否是一个文件;如果不存在,则为false
isDirectory():判断是否是一个文件夹
isHidden():判断指定的文件是否是隐藏文件
isAbsolute():判断指定的文件或文件夹是否是在绝对路径下
获取:
getName():获取文件或文件夹名称
getPath():返回的是绝对路径,可以是相对路径,但是目录要指定
getAbsolutePath():获取绝对路径
length():获取文件的大小(字节为单位)
getParent():获取文件的父路径
lastModified():获取文件最后一次修改的时间
注意:
. :一个点表示当前路径
.. :两个点表示上一级路径
路径问题:
绝对路径:该文件在硬盘上的完整路径;绝对路径一般是以盘符开头的。
相对路径:资源文件相对于当前程序所在路径。
注意:如果程序当前所在路径与资源文件不再同一个盘下面,是没法写相对路径的
5、实例
package com.dhb.file; import java.io.File;
import java.io.IOException; /**
* @author DSHORE / 2018-6-22
*
*/
public class Demo2 {
public static void main(String[] args) throws IOException {
//创建
File file=new File("F:\\aa");
System.out.println("创建文件成功了吗?"+file.createNewFile());
File dir=new File("F:\\aaa\\aaa");
System.out.println("创建文件夹成功了吗?"+dir.mkdir());
File dirs=new File("F:\\aaa\\aaa\\aa\\cc\\ddd");
System.out.println("创建多级文件夹成功了吗?"+dirs.mkdirs()); File destFile=new File("F:\\aaaw");
System.out.println("重命名文件夹成功吗?"+dir.renameTo(destFile));
System.out.println("重命名文件成功吗?"+file.renameTo(destFile)); //删除
File deletefile=new File("F:\\aaa");
System.out.println("删除文件/空文件夹成功吗?"+deletefile.delete());
file.deleteOnExit();//jvm
System.out.println("哈哈哈"); //判断
File fil=new File("F:\\a.txt");
file.createNewFile();//创建一个文件
System.out.println("该文件/文件夹存在吗?"+fil.exists());
System.out.println("判断是否是一个文件:"+fil.isFile());
System.out.println("判断是否是一个文件夹:"+fil.isDirectory());
System.out.println("隐藏文件吗?"+fil.isHidden());
System.out.println("是绝对路径吗?"+fil.isAbsolute());
}
}
"获取"的例子
package com.dhb.file; import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date; /**
* @author DSHORE / 2018-6-25
*
*/
public class Demo3 {
public static void main(String[] args) {
/*File file=new File("..\\homeWork.java");
System.out.println(file.exists());*/ File f=new File("..\\..\\a.txt");//上上级路径下的a.txt文件
System.out.println("获取文件名:"+f.getName());//返回值:a.txt
System.out.println("获取相对路径:"+f.getPath());//返回值:..\..\a.txt 说明:a.txt文件在C:\MyEclipse10路径下
/** 当上面两条输出语句的绝对路径下没有a.txt这个文件时,也是输出这个结果,因为他获取的是当前对象f的值*/
System.out.println(f.exists());//返回值:true 说明:C:\MyEclipse10路径下有a.txt文件
System.out.println("获取绝对路径:"+f.getAbsolutePath());//返回值:C:\MyEclipse10\MyCode\MyJavaCode\..\..\a.txt
System.out.println("获取文件的大小(字节为单位):"+f.length());//返回值:10
System.out.println("获取文件的父路径:"+f.getParent());//返回值:..\.. 说明:其父路径为C:\MyEclipse10
long lm=f.lastModified();
Date date=new Date(lm);
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
System.out.println("获取文件最后一次修改的时间:"+sdf.format(date));//返回值:2018年06月25日 11:29:49
}
}
运行结果图
附录1
与文件夹操作相关:
static File[] listRoots():列出所有的根目录(Windows所有系统盘符)
list():返回指定目录下的所有文件或文件夹名,包含隐藏文件(返回的文件/文件夹名是字符串,不可再对文件/文件夹进行操作)
listFiles():返回指定目录下的所有文件或文件夹名,包含隐藏文件(可以再对文件/文件夹进行操作)
package com.dhb.file; import java.io.File; /**
* @author DSHORE / 2018-6-25
*
*/
public class Demo4 {
public static void main(String[] args) {
File[] roots=File.listRoots();
for (File file : roots) {
System.out.println(file);
/* C:\ //运行结果
* D:\
* E:\
* F:\
* G:\
* H:\
* */
} File file=new File("F:\\MyJavaCode");
String[] s=file.list();
for (String string : s) {
System.out.println(string);//返回指定目录下的所有文件或文件夹名,包含隐藏文件(返回的文件/文件夹名是字符串,不可再对文件/文件夹进行操作)
} File[] f=file.listFiles();
for (File file2 : f) {
System.out.println(file2.getName());//返回指定目录下的所有文件或文件夹名,包含隐藏文件(可以再对文件/文件夹进行操作)
}
}
}
运行结果图
后面两条输出语句的结果都一样
附录2
例1:
package com.dhb.file; import java.io.File; /**
* @author DSHORE / 2018-6-25
*
*/
/* 需求1:指定一个文件夹,然后返回文件夹下面所有java文件
* */
public class Demo5 {
public static void main(String[] args) {
listJava(new File("F:\\MyJavaCode"));
}
public static void listJava(File dir){
File[] file=dir.listFiles();
for (File file2 : file) {
//方法1
if(file2.getName().endsWith(".java")){
System.out.println(file2.getName());
}
//方法2:正则表达式
String fileName=file2.getName();
if(fileName.matches(".+\\.java")){
System.out.println(fileName);
}
}
}
}
运行结果图
例2:
package com.dhb.file; import java.io.File; /**
* @author DSHORE / 2018-6-26
*
*/
/*
* 需求2:指定一个文件夹,然后列出文件夹下面的所有子文件与文件夹,但是 格式要如下
*
* 文件:
* 文件名1
* 文件名2
* 文件名2
*
* 文件夹:
* 文件夹1
* 文件夹2
* 文件夹3
* */
public class Demo6 { public static void listJava2(File dir){
File[] file=dir.listFiles();
System.out.println("以下是文件:");
for (File file2 : file) {
if(file2.isFile()){//判断其是否是文件
System.out.println(file2.getName());
}
}
System.out.println("以下是文件夹:");
for (File file2 : file) {
if(file2.isDirectory()){//判断其是否是文件夹
System.out.println(file2.getName());
}
}
}
public static void main(String[] args) {
listJava2(new File("F:\\MyJavaCode"));
}
}
运行结果图
附录3
package com.dhb.file; import java.io.File; /**
* @author DSHORE / 2018-6-26
*
*/
//需求:扫描电脑中所有文件夹和文件以及文件夹下的文件和文件夹,或扫描指定盘符下的所有文件和文件夹等等
public class Demo7 {
public static void listDirtory(String dir){
File f=new File(dir);
File[] f2=f.listFiles();//得到文件和文件夹
if(f2==null){
return;
}else{
for (int i = ; i < f2.length; i++) {
if(f2[i].isDirectory()){//判断是否是 文件夹
System.out.println(f2[i].getAbsolutePath()+" \"is director file\"");//返回值是“文件夹”
listDirtory(f2[i].getAbsolutePath());//继续扫描文件夹里面的文件和文件夹
}else{
System.out.println(f2[i].getAbsolutePath());//返回值是“文件”
}
}
}
}
public static void main(String[] args) {
/*File[] f=File.listRoots();//扫描电脑中所有根盘符
for (File file : f) {
System.out.println(file);
listDirtory(file.toString());//继续扫描文件夹里面的文件和文件夹
}*/
//扫描当前磁盘
listDirtory(File.separator);
//扫描指定磁盘
//listDirtory("F:\\");
}
}
运行结果图(文件和文件夹太多,下面只显示部分)路径的最后一级是文件/文件夹
附录4
package com.dhb.file; import java.io.File; /**
* @author DSHORE / 2018-7-4
*
*/
//需求:删除磁盘中指定的文件夹里面的所有文件和文件夹
public class Demo12 {
public static void delDir(File dir){
File[] files=dir.listFiles();
if(files != null){
for (int i = ; i < files.length; i++) {
if(files[i].isFile()){
boolean b = files[i].delete();
if(b){
System.out.println(files[i].getAbsolutePath()+"\'文件删除成功\'");
}
}else{
delDir(files[i]);
}
}
}//留下根目录,根目录里面的文件和文件夹全删了
for (int j = ; j < files.length; j++) {
if (files[j].isDirectory()) {
boolean b2 = files[j].delete();
//dir.delete();//删除根目录
if (b2) {
System.out.println(files[j].getAbsolutePath()+"\'目录删除成功\'");
}
}
}
if ("F:\\day".equals(dir.getAbsolutePath())) {
boolean b3 = dir.delete();//删除根目录
if (b3) {
System.out.println(dir.getAbsolutePath()+"\'根目录删除成功\'");
}
}
}
public static void main(String[] args) {
File f=new File("F:\\day");
delDir(f);
}
}
删除前
删除后(程序运行后)
原创作者:DSHORE 作者主页:http://www.cnblogs.com/dshore123/ 原文出自:https://www.cnblogs.com/dshore123/p/9214032.html 欢迎转载,转载务必说明出处。(如果本文对您有帮助,可以点击一下右下角的 推荐,或评论,谢谢!) |
检测语言 世界语 中文简体 中文繁体 丹麦语 乌克兰语 乌兹别克语 乌尔都语 亚美尼亚语 伊博语 俄语 保加利亚语 信德语 修纳语 僧伽罗语 克罗地亚语 冰岛语 加利西亚语 加泰罗尼亚语 匈牙利语 南非祖鲁语 卡纳达语 卢森堡语 印地语 印尼巽他语 印尼爪哇语 印尼语 古吉拉特语 吉尔吉斯语 哈萨克语 土耳其语 塔吉克语 塞尔维亚语 塞索托语 夏威夷语 威尔士语 孟加拉语 宿务语 尼泊尔语 巴斯克语 布尔语(南非荷兰语) 希伯来语 希腊语 库尔德语 弗里西语 德语 意大利语 意第绪语 拉丁语 拉脱维亚语 挪威语 捷克语 斯洛伐克语 斯洛文尼亚语 斯瓦希里语 旁遮普语 日语 普什图语 格鲁吉亚语 毛利语 法语 波兰语 波斯尼亚语 波斯语 泰卢固语 泰米尔语 泰语 海地克里奥尔语 爱尔兰语 爱沙尼亚语 瑞典语 白俄罗斯语 科萨 科西嘉语 立陶宛语 索马里语 约鲁巴语 缅甸语 罗马尼亚语 老挝语 芬兰语 苏格兰盖尔语 苗语 英语 荷兰语 菲律宾语 萨摩亚语 葡萄牙语 蒙古语 西班牙语 豪萨语 越南语 阿塞拜疆语 阿姆哈拉语 阿尔巴尼亚语 阿拉伯语 韩语 马其顿语 马尔加什语 马拉地语 马拉雅拉姆语 马来语 马耳他语 高棉语 齐切瓦语 |
世界语 中文简体 中文繁体 丹麦语 乌克兰语 乌兹别克语 乌尔都语 亚美尼亚语 伊博语 俄语 保加利亚语 信德语 修纳语 僧伽罗语 克罗地亚语 冰岛语 加利西亚语 加泰罗尼亚语 匈牙利语 南非祖鲁语 卡纳达语 卢森堡语 印地语 印尼巽他语 印尼爪哇语 印尼语 古吉拉特语 吉尔吉斯语 哈萨克语 土耳其语 塔吉克语 塞尔维亚语 塞索托语 夏威夷语 威尔士语 孟加拉语 宿务语 尼泊尔语 巴斯克语 布尔语(南非荷兰语) 希伯来语 希腊语 库尔德语 弗里西语 德语 意大利语 意第绪语 拉丁语 拉脱维亚语 挪威语 捷克语 斯洛伐克语 斯洛文尼亚语 斯瓦希里语 旁遮普语 日语 普什图语 格鲁吉亚语 毛利语 法语 波兰语 波斯尼亚语 波斯语 泰卢固语 泰米尔语 泰语 海地克里奥尔语 爱尔兰语 爱沙尼亚语 瑞典语 白俄罗斯语 科萨 科西嘉语 立陶宛语 索马里语 约鲁巴语 缅甸语 罗马尼亚语 老挝语 芬兰语 苏格兰盖尔语 苗语 英语 荷兰语 菲律宾语 萨摩亚语 葡萄牙语 蒙古语 西班牙语 豪萨语 越南语 阿塞拜疆语 阿姆哈拉语 阿尔巴尼亚语 阿拉伯语 韩语 马其顿语 马尔加什语 马拉地语 马拉雅拉姆语 马来语 马耳他语 高棉语 齐切瓦语 |
java基础42 File类的构造函数及其方法的更多相关文章
- Java基础之File类的使用
Java基础之File类的使用 1.File类的构造方法和常用方法 2.对File中listFile(FileNameFilter name)学习 3.与File文件类相关的实现 File类的构造方法 ...
- 黑马程序员——【Java基础】——File类、Properties集合、IO包中的其他类
---------- android培训.java培训.期待与您交流! ---------- 一.File类 (一)概述 1.File类:文件和目录路径名的抽象表现形式 2.作用: (1)用来将文件或 ...
- 黑马程序员——JAVA基础之File类,递归,打印流,合并切割流
------- android培训.java培训.期待与您交流! ---------- File类 用来将文件或者文件夹封装成对象 方便对文件与文件夹的属性信息进行操作. File对象可以作为参数传递 ...
- JAVA基础之File类
个人理解: File是个文件类,可以用其增加.删除.查找某种类型的文件或者文件夹,同时根据其成员变量的特点可以综合利用,避免出现跨系统的时候出现错误,并且查找时最好输入绝对路径,以免出现不存在的文件. ...
- java基础文件,File类
此文参考自"Java SE程序设计" 编著: 青岛东合信息技术有限公司 算是做笔记,以后想看可以翻阅,顺便分享出来大家可以参照.如有侵权,请联系本人删除 文件 文件是相关记录或放在 ...
- Java基础教程——File类、Paths类、Files类
File类 File类在java.io包中.io代表input和output,输入和输出. 代表与平台无关的文件和目录. 可以新建.删除.重命名,但不能访问文件内容. File类里的常量: impor ...
- java学习一目了然——File类文件处理
java学习一目了然--File类文件处理 File类(java.io.File) 构造函数: File(String path) File(String parent,String child) F ...
- java基础(22):File、递归
1. File 1.1 IO概述 回想之前写过的程序,数据都是在内存中,一旦程序运行结束,这些数据都没有了,等下次再想使用这些数据,可是已经没有了.那怎么办呢?能不能把运算完的数据都保存下来,下次程序 ...
- java中的File类
File类 java中的File类其实和文件并没有多大关系,它更像一个对文件路径描述的类.它即可以代表某个路径下的特定文件,也可以用来表示该路径的下的所有文件,所以我们不要被它的表象所迷惑.对文件的真 ...
随机推荐
- 3:JavaBean,EJB,POJO
JavaBeanJavaBean是公共Java类,但是为了编辑工具识别,需要满足至少三个条件: 有一个public默认构造器(例如无参构造器,) 属性使用public 的get,set方法访问,也就是 ...
- NATS_01:NATS基础介绍
1.介绍 NATS(Message bus): 从CloudFoundry的总架构图看,位于各模块中心位置的是一个叫nats的组件.NATS是由CloudFoundry的架构师Derek开发的一个开源 ...
- go语言从零学起(一) -- 文档教程篇
先记录一下自己学go语言的出发点 作为一个phper,精通一门底层语言一直是努力的目标. 相对于c,c++,go语言不需要过多的关注指针,内存释放,一两行代码就能跑起一个server服务,简直不要太简 ...
- 类python中高级用法
1. __call__用法 class Foo: def __init__(self): print('init') def __call__(self, *args, **kwargs): prin ...
- MetaBase
MetaBase是一个快速创建图表的Web站点,对于频繁上新项目,频繁提供数据报表,但人力不足的情况下,是一个不错的选择. 一. 安装部署 在windows环境下可以使用jar.docker的方式,本 ...
- 修改home下的中文目录为英文目录
原文地址:http://blog.csdn.net/esonbest1234/article/details/50729582 习惯问题,喜欢使用fedora为您在home目录下自创建的“桌面”.“文 ...
- ZeroMQ API(七) 安全
1.无安全性:zmq_null(7) 1.1 名称 zmq_null - 没有安全性或机密性 1.2 概要 NULL机制由ZMTP 3.0规范定义:http://rfc.zeromq.org/spec ...
- Jenkins + jmeter + ant + git 自动化集成
背景: 目前测试组项目多,手头任务紧,且回归测试任务量较大,经过组内讨论采用相对快速高效的方式(自动化接口测试类型),在迭代任务中把主要精力集中在新需求测试:而回归测试时,主要采用自动化测试,提高测 ...
- Java并发编程原理与实战八:产生线程安全性问题原因(javap字节码分析)
前面我们说到多线程带来的风险,其中一个很重要的就是安全性,因为其重要性因此,放到本章来进行讲解,那么线程安全性问题产生的原因,我们这节将从底层字节码来进行分析. 一.问题引出 先看一段代码 packa ...
- Linux Ubuntu下安装配置mysql
检查系统中是否已经安装了mysql: sudo netstat -tap | grep mysql 安装mysql: sudo apt-get install mysql-server sudo ap ...