File基本操作
File
(1)File是文件和目录路径名的抽象表示。IO流操作中大部分都是对文件的操作,因此Java就提供了File类供我们来操作文件。
(2)构造方法
根据一个路径得到一个File对象
A:File file = new File("e:\\demo\\a.txt");
根据一个目录和一个子文件/目录得到File对象
B:File file = new File("e:\\demo","a.txt");
根据一个父File对象和一个子文件/目录得到一个File对象
C:File file = new File("e:\\demo");
File file2 = new File(file,"a.txt");
public static void main(String[] args) {
File file = new File("E:\\demo\\a.txt");
File file2 = new File("E:\\demo", "a.txt");
File file3 = new File("e:\\demo");
File file4 = new File(file3, "a.txt");
}
(3)File类的功能
A:创建功能
public boolean createNewFile() 创建文件 如果存在就不创建了
public boolean mkdir() 创建文件夹 如果存在这样的文件夹就不创建了
public boolean mkdirs() 创建文件夹 如果父文件夹不存在,会帮您创建出来
public class FileDemo1 {
public static void main(String[] args) throws IOException {
File file = new File("e:\\demo");
System.out.println("mkdir:" + file.mkdir());
File file2 = new File("e:\\demo\\a.txt");
System.out.println("ceateNewFile:" + file2.createNewFile());
File file3 = new File("e:\\aaa\\bbb\\ccc\\dddd");
System.out.println("mkdir:" + file3.mkdirs());
}
}
B:删除功能
public boolean delete()
注意:如果创建文件或文件夹没有指定盘符路径,默认在项目路径下
Java中的删除不走回收站的哦
要删除一个文件夹,这是这个文件夹下面不能包含文件或文件夹
public class FileDemo2 {
public static void main(String[] args) throws IOException {
File file = new File("a.txt");
System.out.println("createNewFile:" + file.createNewFile());
File file2 = new File("aaa\\bbb\\ccc");
System.out.println("mkdirs:" + file2.mkdirs());
System.out.println("delete:" + file.delete());
//删除ccc文件夹
System.out.println("delete:" + file2.delete());
//删除aaa文件夹
File file3 = new File("aaa\\bbb");
File file4 = new File("aaa");
System.out.println("delete:" + file3.delete());
System.out.println("delete:" + file4.delete());
}
}
C:重命名功能
pulbic boolean renameTo(File desc)
public class FileDemo3 {
public static void main(String[] args) {
//先创建一个文件对象
File file = new File("aaa.jpg");
//修改成“bbb.jpg”
File newfile = new File("bbb.jpg");
System.out.println("renameTo:" + file.renameTo(newfile));
}
}
D:判断功能
public boolean isDirectory():判断是否是目录
public boolean isFile():判断是否是文件
public boolean exists():判断是否存在
public boolean canRead():判断是否可读
public boolean canWrite():判断是否可写
public boolean isHidden():判断是否隐藏
public class FileDemo4 {
public static void main(String[] args) {
File file = new File("a.txt");
System.out.println("isDirectory:" + file.isDirectory());
System.out.println("idFile:" + file.isFile());
System.out.println("exists:" + file.exists());
System.out.println("canRead:" + file.canRead());
System.out.println("canWrite:" + file.canWrite());
System.out.println("isHidden:" + file.isHidden());
}
}
E:获取功能
* public String getAbsolutePath() :获取绝对路径
* public String getPath() :获取相对路径
* public String getName() :获取名称
* public long length() :获取字节数
* public long lastModifiled() :获取最后一次修改时间
public class FileDemo5 {
/**
* public String getAbsolutePath() :获取绝对路径
* public String getPath() :获取相对路径
* public String getName() :获取名称
* public long length() :获取字节数
* public long lastModifiled() :获取最后一次修改时间
*/
public static void main(String[] args) {
File file = new File("demo\\a.txt");
System.out.println("getAbsolutePath:" + file.getAbsolutePath());
System.out.println("getPath:" + file.getPath());
System.out.println("getName:" + file.getName());
System.out.println("length:" + file.length());
System.out.println("lastModifiled:" + file.lastModified());
//打印出的时间 1416481977031 转化成年月
Date d = new Date(1416481977031L);
SimpleDateFormat sdt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String s = sdt.format(d);
System.out.println(s);
}
}
F:高级获取功能
public String[] list():获取指定目录下的所有文件或者文件夹名称数组
public File[] listFile():获取指定目录下的所有文件或者文件夹的File数组
这种方法可以对拿到的File文件可以进一步做其他操作,如获取路径等
public class FileDemo6 {
public static void main(String[] args) {
File file = new File("e:\\");
//public String[] list():获取指定目录下的所有文件或者文件夹名称数组
String[] strArray = file.list();
for(String s : strArray){
System.out.println(s);
}
System.out.println("***********************");
//public File[] listFile():获取指定目录下的所有文件或者文件夹的File数组
//这种方法可以对拿到的File文件做其他操作 如获取路径等
File[] fileArray = file.listFiles();
for(File f : fileArray){
System.out.println(f.getName());
}
}
}
G:过滤器功能
A:输出指定目录下指定后缀名的文件名称
a:先获取所有的,在遍历的时候判断,再输出
b:先判断,再获取,最后直接遍历输出即可
判断E盘目录下是否含有后缀名为.jpg的文件,如果有就输出文件名称
a:先获取所有的,在遍历的时候判断,再输出
/**
* 判断E盘目录下是否含有后缀名为.jpg的文件,如果有就输出文件名称
*
* 封装E盘目录
* 获取该目录下所有的文件或者文件夹的File数组
* 遍历该File数组得到每一个File对象,然后判断
* 是否是文件
* 是 再判断是否以.jpg结尾
* 是 输出该文件名称
* 否 不用管
* @author Administrator
*
*/
public class FileDemo7 {
public static void main(String[] args) {
//封装E盘目录
File file = new File("e:\\");
//获取该目录下所有的文件或者文件夹的File数组
File[] fileArray = file.listFiles();
//遍历该File数组得到每一个File对象,然后判断
for(File f : fileArray){
//是否是文件
if(f.isFile()){
//是否以.jpg结尾
if(f.getName().endsWith(".jpg")){
//输出该文件名称
System.out.println(f.getName());
} }
}
} }
b:先判断,再获取,最后直接遍历输出即可 采用过滤器改进版本,在放入数组时就判断了,后直接输出
public class FileDemo8 {
public static void main(String[] args) {
File file = new File("e:\\");
String[] strArray = file.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return new File(dir, name).isFile() && name.endsWith(".jpg");
}
});
for(String s : strArray){
System.out.println(s);
}
}
}
案例批量修改文件名称
E:\评书\三国演义\三国演义_001_[评书网-今天很高兴]_桃园三结义.avi
改成 E:\评书\三国演义\001_桃园三结义.avi
/**
* 批量修改文件名称
*
* 思路:
* 封装目录
* 获取该目录下所有的文件的File数组
* 遍历该File数组,得到每一个File对象
* 拼接一个新的名称
* @author Administrator
*
*/
public class FileDemo9 {
public static void main(String[] args) {
//封装目录
File srcFolder = new File("E:\\评书\\三国演义"); //获取该目录下所有的文件的File数组
File[] fileArray = srcFolder.listFiles(); //遍历该File数组,得到每一个File对象
for(File file : fileArray){
//E:\评书\三国演义\三国演义_001_[评书网-今天很高兴]_桃园三结义.avi
//改后: E:\评书\三国演义\001_桃园三结义.avi String name = file.getName();//得到 三国演义_001_[评书网-今天很高兴]_桃园三结义.avi int index = name.indexOf("_");
String numberString = name.substring(index + 1, index + 4);//包左不包右 右边要多一个 int endindex = name.lastIndexOf('_');
String nameString = name.substring(endindex); //拼接
String newName = numberString.concat(nameString);//001_桃园三结义.avi File newFile = new File(srcFolder, newName);//E:\\评书\\三国演义\\001_桃园三结义.avi
//重命名
file.renameTo(newFile); }
} }
File基本操作的更多相关文章
- Java之IO流概述和File基本操作
IO流图解 IO(in / out)流的分类 流向: 输入流 读取数据 输出流 写出数据 数据类型: 字节流 一个字节占8位, 以一个字节为单位读数据 八大数据类型所占字节数: byte(1), ...
- java IO之File基本操作
public static void main(String[] args) { // TODO Auto-generated method stub //"G:\\JAVA\\test\\ ...
- java File基本操作,以及递归遍历文件夹
java 的文件操作,相对来说是比较重要的,无论是编写CS还是BS程序,都避免不了要与文件打交道,例如读写配置文件等.虽然现在很多框架都直接帮你做好了这一步! java.io.File 底层是调用与c ...
- docker系列之file基本操作
dockerfile基础操作 Dockerfile 是记录了镜像是如何被构建出来的配置文件, 可以被 docker 直接执行以创建一个镜像. 它的样子: FROM ubuntu:14.04 MAINT ...
- python之最强王者(10)———文件(File)、输入输出的基本操作
1. Python 文件I/O 本章只讲述所有基本的的I/O函数,更多函数请参考Python标准文档. 2.打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式. ...
- Java File类基本操作
我们可以利用Java.io.File类对文件进行操作,基本操作如下: 1)创建文件: public boolean createNewFile() throws IOException 2)删除文件: ...
- File类的基本操作之读出所有目录路径
package org.mark.file; import java.io.File; /** * File类的基本操作之读出所有文件夹路径 * 假设给定一个文件夹,要求将此文件夹中的所有文件都列出来 ...
- file的基本操作;file的修改
file的基本操作 # Author:nadech # 文件读写/修改/ #data = open("yesterday",encoding="utf-8"). ...
- File类-文件基本操作
package com.java.io; import java.io.File; import java.io.IOException; import java.math.BigDecimal; i ...
随机推荐
- 五年双十一:SLS数据管道发展之路
日志服务SLS是一款飞天团队自研产品,服务云上云下3W+客户,并在阿里经济体中作为日志数据的基础设施,在过去几年中经历多次双十一.双十二.新春红包锤炼.在2019双十一中: 服务阿里经济体3W+ 应用 ...
- Solr分组查询
项目中需要实时的返回一下统计的东西,因此就要进行分组,在获取一些东西,代码拿不出来,因此分享一篇,还是很使用的. facet搜索 /** * * 搜索功能优化-关键词搜索 * 搜索范围:商品名称.店 ...
- 【CF1252F】Regular Forestation(重心,树同构)
题意:给定一棵n个点的树,问删去某个点之后所有的树同构,这样分割出来的树最多能有几棵 n<=4000 思路:分割成至少两个size相等的联通块之后size必定小于n/2,与树的重心的定义相同 预 ...
- 01-pandas基础-Series与DataFrame
一.Series: 1,介绍:Series是以中类似于一维数组的对象,由一维数组以及与之相关的标签组成 特点:索引在左边,值在右边.在创建时,若我们未给数据指定索引,Series会自动创建一个0到N- ...
- HDU6030 Happy Necklace(推导+矩阵快速幂)
HDU6030 Happy Necklace 推导或者可以找规律有公式:\(f[n] = f[n-1] + f[n-3]\) . 构造矩阵乘法: \[ \begin{pmatrix} f_i \\ f ...
- Tarjan算法整理
众所周知,tarjan是个非常nb的人,他发明了很多nb的算法,tarjan算法就是其中一个,它常用于求解强连通分量,割点和桥等.虽然具体实现的细节不太一样,但是大体思路是差不多的.先来说一下大体思路 ...
- 几个FFmpeg 视频参数 fps、tbr、tbn、tbc
我们用Ffplay播放文件或者视频流命令行会出现fps.tbr.tbn.tbc等参数如下图所示 图1 ffplay 播放文件示意图 fps表示平均帧率,总帧数除以总时长(以s为单位). tbr 表示 ...
- python-笔记(四)函数
一.函数是什么? 函数一次来源于数学,但是编程中的[函数]的概念,与数学中的函数还是有很大的不同的,编程中的函数在英文中也有很多不同的叫法. 在Basic中叫做subroutine(子过程或子程序), ...
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_09 序列化流_4_transient关键字_瞬态关键字
不想被序列化的成员变量用 transient修饰 age加上static关键字 反序列化age就读取不到正确的值了
- 监测工具dstat使用说明
参考地址: https://blog.csdn.net/sinat_34789167/article/details/80986709