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类其实和文件并没有多大关系,它更像一个对文件路径描述的类.它即可以代表某个路径下的特定文件,也可以用来表示该路径的下的所有文件,所以我们不要被它的表象所迷惑.对文件的真 ...
随机推荐
- 20135319zl内核模块编译报告
内核模块编程学习报告 1.编写一个简单的输出信息的模块 源代码: Makefile 编译模块 加载模块 测试模块(dmesg) 卸载模块 Sudo rmmod 1 使用dmesg查看情况 2.输出当前 ...
- android:ellipsize属性的含义
android:ellipsize属性的含义http://blog.csdn.net/uyu2yiyi/article/details/6316310 跑马灯效果:http://www.liu-may ...
- 「CodePlus 2017 11 月赛」Yazid 的新生舞会(树状数组/线段树)
学习了新姿势..(一直看不懂大爷的代码卡了好久T T 首先数字范围那么小可以考虑枚举众数来计算答案,设当前枚举到$x$,$s_i$为前$i$个数中$x$的出现次数,则满足$2*s_r-r > 2 ...
- bzoj 3667 Rabin-Miller算法
#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #i ...
- Java Learning之文档注释
文档注释的结构 文档注释主体的开头是一句话,概述类型或成员的作用,应自成一体.后面可跟其他句子或段落,用以详细说明类.接口.方法或字段. 除了这些描述性的段落以外,后也可跟其他段落,数量不限,并且每段 ...
- 【Asp.net入门01】动态网站基础知识
本节将介绍: 网站搭建流程 动态网站相关基础概念 网页的访问原理 使用浏览器访问网站是我们几乎天天在做的事情.以前我们只需要关注网页内容,作为网站开发人员,从现在开始我们要关注更深层次的东西了. 1. ...
- vue2借助animate.css实现路由动画效果
第一步: npm install animate.css --save 第二步:打开main.js import animate from 'animate.css' Vue.use(animate) ...
- js 正则表达式 整数或小数
非零开头的整数或小数 /^[1-9][0-9]*([.][0-9]+)?$/ 非零开头的整数或两位小数 /^[1-9][0-9]*([.][0-9]{1,2})?$/ /^[1-9][0-9]*([. ...
- CS20 D LCA
给出一棵树,许多询问,每次询问A,B,C三点,求一点使到三点距离最小,输出该点和最小值. 很明显就是求LCA,三种组合都求一次LCA,然后在里面选个距离和最小的就行了. 官方题解里面的代码求LCA是在 ...
- Linux基础实验
过滤,管道与重定向 过滤 管道 重定向 运维常用 给某目录设置权限 sudo chmod -R /var/www/html/