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类其实和文件并没有多大关系,它更像一个对文件路径描述的类.它即可以代表某个路径下的特定文件,也可以用来表示该路径的下的所有文件,所以我们不要被它的表象所迷惑.对文件的真 ...
随机推荐
- 【codeforces 553E】 Kyoya and Train
http://codeforces.com/problemset/problem/553/E (题目链接) 艹尼玛,CF还卡劳资常数w(゚Д゚)w!!系统complex被卡TLE了T_T,劳资写了一天 ...
- 面向对象高级编程(2)-使用@property
使用@property 在绑定属性时,如果我们直接把属性暴露出去,虽然写起来很简单,但是,没办法检查参数,导致可以把成绩随便改: s = Student() s.score = 9999 这显然不合逻 ...
- oracle 11g 压缩数据文件
通过以下语句直接分析出每个数据库文件可压缩量 select a.file#, a.name, a.bytes CurrentMB, ceil(HWM ResizeTo, (a.bytes Releas ...
- 【树上莫队】【SP10707】 COT2 - Count on a tree II
Description 给定一棵 \(n\) 个点的树,每个节点有一个权值,\(m\) 次询问,每次查询两点间路径上有多少不同的权值 Input 第一行是 \(n\) 和 \(m\) 第二行是 \(n ...
- 【费用流】【网络流24题】【P1251】 餐巾计划问题
Description 一个餐厅在相继的 \(N\) 天里,每天需用的餐巾数不尽相同.假设第 \(i\) 天需要 \(r_i\)块餐巾.餐厅可以购买新的餐巾,每块餐巾的费用为 \(p\) 分;或者把旧 ...
- win10不能被远程解决方案(开启远程桌面,防火墙仍不能被远程解决方案)
开启远程桌面,防火墙仍不能被远程解决方案 1.“Win+R”→“gpedit.msc” 2.依次展开“计算机配置”→“管理模版”→“系统”→“凭据分配”→找到“允许分配保存的凭据用于仅NTLM服务器身 ...
- 布谷鸟搜索算法CS
0 引言 布谷鸟搜索(Cuckoo Search,CS)是由 Xin-She Yang 和 Suash Deb 于 2009 年开发的自然启发式算法.CS 基于布谷鸟的寄生性育雏(brood para ...
- (一)C的编译,printf,规范化
(一)编译的具体过程: 以前一直觉得,C代码的具体实现过程就是把几个.c文件编译成.o文件,然后链接在一起就可以了.可是最近在看C Prime Plus查漏补缺基础知识的过程中发现,这里的链接其实链接 ...
- Java入门:JDK与Eclipse之类的集成开发工具的关系
JDK是Java Development Kit,也就是说Java开发所需的工具包.有了这个东西,一切Java开发理论上都不是问题了.当然,根据你下载的版本不同,可能擅长的领域不同.通常大家都是用JD ...
- Laravel 项目集合
1. CMS LaraCMS https://github.com/wanglelecc/laracms 2. 电商 3. 点播 MeEdu https://github.com/Qs ...