File–文件的创建、删除、重命名 文件夹的创建、删除、重命名、遍历文件夹
file文件的创建
file的创建,我们用的是f.createNewFile()方式
import java.io.File;
import java.io.IOException;
public class Files {
/**
* @param args
* 文件的创建
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
File f = new File("d://hello.txt");
//判断文件是不是存在的,因为我没有创建这里肯定是不存在的
if(f.exists()){
System.out.println("获取文件的路径"+f.getPath());
System.out.println("是否是文件"+f.isFile());
System.out.println("是否是是个目录件"+f.isDirectory());
}else{
System.out.println("文件不存在");
//如果不存在就创建此文件
try {
//创建用的是下面的createNewFile()方法
f.createNewFile();
System.out.println("文件创建成功");
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("文件创建失败");
}
}
}
}
file文件的属性
public class Filesfrist {
/**
* @param args
* 文件的创建
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
File f = new File("d://hello.text");
if(f.exists()){
//判断文件是否存在
System.out.println("文件是否存在 :"+ f.exists());
//读取文件名称
System.out.println("读取文件名称 :"+ f.getName());
//读取文件路径
System.out.println("读取文件路径 :"+ f.getPath());
//读取文件绝对路径
System.out.println("读取文件绝对路径 :"+ f.getAbsolutePath());
//读取文件父级路径
System.out.println("读取文件父级路径 :"+ f.getParent());
//建议用下面这个写法,比较严谨
System.out.println("读取文件父级路径 :"+ new File( f.getAbsolutePath()).getParent());
//读取文件大小
System.out.println("读取文件大小 :"+ (float)f.length()/1000+"kb");
//读取文件是否被隐藏
System.out.println("读取文件是否被隐藏 :"+ f.isHidden());
//判断文件是否可读
System.out.println("判断文件是否可读 :"+ f.canRead());
//判断文件是否可写
System.out.println("文件是否可写 :"+ f.canWrite());
//判断文件是否为文件夹
System.out.println("是否为文件夹 :"+ f.isDirectory());
}else {
try {
f.createNewFile();
System.out.println("文件创建成功");
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("文件创建失败");
}
}
}
}
file文件的删除
file文件的删除用的是f.delete()方法
import java.io.File;
import java.io.IOException;
public class Files02 {
/**
* @param args
* 文件的删除
*/
public static void main(String[] args) {
File f = new File("d://hello.txt");
//判断文件是不是存在的,因为我没有创建这里肯定是不存在的
if(f.exists()){
f.delete();
System.out.println("文件删除成功");
}else{
System.out.println("文件不存在");
//如果不存在就创建此文件
try {
//创建用的是下面的createNewFile()方法
f.createNewFile();
System.out.println("文件创建成功");
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("文件创建失败");
}
}
}
}
file修改文件的名称
import java.io.File;
import java.io.IOException;
public class Files03 {
/**
* @param args
* 文件修改名称
*/
public static void main(String[] args) {
File f = new File("d://hello.txt");
if(f.exists()){
//把hello.ext文件名称修改为newhello.txt
File file = new File("d://newhello.txt");
f.renameTo(file);
System.out.println("文件名称修改成功");
}else{
System.out.println("文件不存在");
//如果不存在就创建此文件
try {
//创建用的是下面的createNewFile()方法
f.createNewFile();
System.out.println("文件创建成功");
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("文件创建失败");
}
}
}
}
file文件移动位置
注意:
import java.io.File;
import java.io.IOException;
public class Files04 {
/**
* @param args
* 文件的移动
* 同一个磁盘中才可以,苹果系统无此要求
*/
public static void main(String[] args) {
File f = new File("d://yidonghello.txt");
if(f.exists()){
//上面已经存在了文件newhello.txt。我们移动到d://data//newhello.txt
File file = new File("d://data//yidonghello.txt");
f.renameTo(file);
System.out.println("文件移动成功");
}else{
System.out.println("文件不存在");
//如果不存在就创建此文件
try {
//创建用的是下面的createNewFile()方法
f.createNewFile();
System.out.println("文件创建成功");
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("文件创建失败");
}
}
}
}
file之——单个文件夹的创建
创建单个文件夹用的是f.mkdir()
注意:f.mkdir()不能创建多层文件夹,例如helloholder/one/two就会报错。
import java.io.File;
import java.io.IOException;
public class Files_folder01 {
/**
* @param args
* 单个文件夹的创建
*/
public static void main(String[] args) {
File f = new File("d://helloholder");
/*
* 注意:f.mkdir()不能创建多层文件夹,例如helloholder/one/two就会报错。以为他只能创建helloholder文件夹,不能创建one,
* 更不会创建one文件夹中的two文件夹
*
* 文件夹的创建和文件的创建是有很大区别的
* 文件的创建时用的是:"f.createNewFile()"
* 文件夹的创建时用的是:"f.mkdir();"
* */
//第一次,创建文件夹,肯定会是创建文件成功,如果再次运行,因为此文件夹已经存在,所以不会重复创建
if(f.mkdir()){
System.out.println("文件夹创建成功");
}else {
if(f.exists()){
System.out.println("文件夹已经存在,所以不用创建");
}else {
System.out.println("文件夹创建失败");
}
}
}
}
file之——多个文件夹的创建
1、多个文件夹文件夹的创建用的是f.mkdirs()
2、单个文件的创建时用的是:”f.mkdir()”
3、文件夹的创建时用的是:”f.mkdirs();”
import java.io.File;
import java.io.IOException;
public class Files_folder02 {
/**
* @param args
* 多层文件夹的创建
* 我们创建一个D盘helloholder文件夹--one文件夹--two文件夹
*/
public static void main(String[] args) {
File f = new File("d://helloholder//one//two");
/*
* 多层文件夹的创建和单个文件的创建也是有很大区别的
* 单个文件的创建时用的是:"f.mkdir()"
* 文件夹的创建时用的是:"f.mkdirs();"
* */
//多层文件夹创建
if(f.mkdirs()){
System.out.println("多层文件夹创建成功");
}else {
if(f.exists()){
System.out.println("多层文件夹已经存在,所以不用创建");
}else {
System.out.println("多层文件夹创建失败");
}
}
}
}
file之——修改某个文件夹的名称
import java.io.File;
import java.io.IOException;
public class Files_folder03 {
/**
* @param args
* 多层文件夹中文件名称的修改
* 文件夹的名称由helloholder 改变为 helloholder_new
* 文件夹的名称由two 改变为 two_new
*/
public static void main(String[] args) {
//------------------------------------------01,--------------------------------------------//
// 文件夹的名称由helloholder 改变为 helloholder_new
// File f = new File("d://helloholder");
// File folder = new File("d://helloholder_new");
//
// if(f.renameTo(folder)){
// System.out.println("文件夹的名称由helloholder 改变为 helloholder_new");
// }else {
// System.out.println("文件夹的名称修改失败");
// }
//------------------------------------------02,--------------------------------------------//
// 文件夹的名称由two 改变为 two_new
File f = new File("d://helloholder_new//one//two");
File folder = new File("d://helloholder_new//one//two_new");
if(f.renameTo(folder)){
System.out.println("文件夹的名称由two 改变为 two_new");
}else {
System.out.println("文件夹的名称修改失败");
}
}
}
file之——文件夹删除
注意:文件夹删除,只能删除空的文件夹。
import java.io.File;
import java.io.IOException;
public class Files_folder04 {
/**
* @param args
* 文件夹删除
* 注意,只能删除空的文件夹,如果里面有内容无法删除。
*/
public static void main(String[] args) {
// 1、我们指定路径
File f = new File("d://deletefile//one//two_new");
if (f.exists()) {
//3、指定我们删除的文件夹路径,前提文件夹中没有内容
//在这里如果删除one就不可以,因为one中包含了two_new文件夹。
//这里我们删除最底层的two_new。就会删除成功
File fs = new File("d://deletefile//one//two_new");
if(fs.delete()){
System.out.println("two_new文件夹删除成功");
}else {
System.out.println("two_new文件夹删除失败");
}
fs.delete();
}else {
//2、没有就创建。然后在运行查看是否移动
f.mkdirs();
System.out.println("文件夹创建成功");
}
}
}
file之——文件夹移动
import java.io.File;
import java.io.IOException;
public class Files_folder05 {
/**
* @param args
* 多层文件夹中的移动
* 文件夹two_new上移一层。如果two_new下面还有文件夹,也会和它一起移动到制定的位置
* 注意:必须是同一分区。
*/
public static void main(String[] args) {
// 1、实现我们创建的文件夹two_new上移一层,和one同级
File f = new File("d://helloholder_new//one//two_new");
if (f.exists()) {
//如果文件夹已经存在,就直接移动
File folder = new File("d://helloholder_new//two_new");
if(f.renameTo(folder)){
System.out.println("文件夹移动成功");
}else {
System.out.println("文件夹移动失败");
}
}else {
//没有就创建。然后在运行查看是否移动
f.mkdirs();
System.out.println("文件夹创建成功");
}
}
}
file之——遍历文件夹
import java.io.File;
import java.io.IOException;
public class Files_traverse {
/**
* @param args
* 遍历文件夹
*/
public static void main(String[] args) {
/*
*1、我创建了一个文件夹,在D:\data
*2、data文件夹我创建了两个txt文件和三个文件夹,其中one文件夹有一个txt文件
*3、我要把这些txt都打印出来
*/
printfile(new File("D://data"),1);
}
//我们先写一个遍历的方法
public static void printfile(File dir,int tab) {
//如果是文件夹,我们就对这个文件夹进行处理
if(dir.isDirectory()){
//通过dir.listFiles()获取到文件夹下的所有文件,并且放在一个数组中
File next[] = dir.listFiles();
//遍历数组
for (int i = 0; i < next.length; i++) {
for (int j = 0; j < tab; j++) {
System.out.print("|--");
}
//如果是文件就直接打印出来,如果是文件夹就遍历文件夹下的文件
System.out.println(""+next[i].getName());
if(next[i].isDirectory()){
printfile(next[i],tab+1);
}
}
}
}
}