JAVA 文件类File操作

File类的三种构造方法

  1. 文件全路径
File file = new File("C:\\ftp\\123456.txt");

2.路径+文件名称

File file = new File("C:\\ftp","123456.txt");

3.File+文件名称

File file = new File("C:\\ftp");
File file1 = new File(file+"123456.txt");

使用createNewFile方法创建文件

方法返回值为boolean类型,如果创建成功返回true,如果创建失败返回false

File file = new File("C:\\ftp\\tt.txt");
Boolean b = file.createNewFile();
/*如果路径只有文件名则会在项目src目录下创建文件*/
File file = new File("b.txt");
Boolean b = file.createNewFile();

注意点:
1.如果文件存在则会返回false,并不会二次创建进行覆盖。
2.File没有具体的目录只有文件名称则会创建在项目src目录下
3.该方法不能创建路径如果路径地址错误则会直接异常

使用mkdir和mkdirs方法创建文件夹

File file = new File("C:\\ftp\\bbb");
file.mkdir();
File file1 = new File("C:\\ftp\\ccc\\ddd");
file.mkdirs();

注意点:
1.mkdir只能创建一层而mkdirs可以创建多层
2.mkdir只能用来创建文件夹
3.如果不填写具体的绝对路径就会创建在项目的src文件夹下

File的delete方法

	File file = new File("C:\\ftp\bbb\\aaa.txt");
	file.delete();

注意点:
1.该方法只能删除文件和目录下没有其他文件和目录的目录

File重命名的方法

方法名rnameTo 方法参数类型File

	File file = new File("new File('C:\\ftp\\bbb.txt')");
	file.rnameTo(new File("new File('C:\\ftp\\aaa.txt')"));

注意点:
如果重命名路径不一样就会变成剪切

File 的判断方法

isDirctory()判断该文件是否是一个目录
canRead()判断该文件是否可读
canWrite()判断文件是否可以写入
isFile()判断是否是一个文件
isHidden()判断该文件是否是一个隐藏文件
exists()判断该文件是否存在

File 文件获取的方法

getAbsolutePath();获取文件绝对路径。
(绝对路径:文件在磁盘中的路径地址)
getpath();获取文件相对路径的方法。
(相对路径:文件相对与项目中的路径地址)
getName();获取文件名字的方法;
(附带文件后缀名)
getlength();获取文件字节长度的方法;
(1024个字节等于1kb)
lastModified();获取文件最后修改时间的方法;
(精确到毫秒)

File file = new File("C:\\ftp\\c.txt");
//获取文件的绝对路径
String absolutepath = file.getAbsolute();
//获取文件的相对路径
String path = file.getpath();
//获取文件的名字
String name = file.getName();
//获取文件的大小
long size = file.getlength();
//获取文件最后的修改时间
long time= file.lastmodified();
//until包下的Date
Date date = new Date(time);

获取文件夹下所有文件

getlist();获取文件夹下的所有文件的名字并以String[]的形式返回;
getFiles();获取指定文件夹下所有文件并以File[]的形式返回;

	File file = new File("C:\\sqlitedata");
	//或取文件夹下面的所有文件的名
	String[] filenames = file.list();
	for(Stirng filename : filenames){
	System.out.println("====="+filename+"=====");
	}
	//获取文件夹下所有文件的绝对路径
	File[] files = file.getFiles();
	for(File file1 :files){
		System.out.println("====="+file1.getAbsolute+"=====");
	}

练习题1:判断C盘指定目录下是否存在jpg文件,如果存在则返回其绝对路径。

	File file = new File(C:\\sqlitedata);
	File[] files = file.getFiles();
	for(File file1 : files){
		String name = file1.getName();
		if(name.endWith(".jpg")){
			System.Out.println(file1.getAbsoulte);
		}
	}

练习题2:遍历D盘指定文件夹文件重命名为指定格式。

文件原格式:JAVA零基础_001_IO流_IO流概述
指定格式为:001_IO流概述
思路:1.遍历指定文件夹的所有文件,获取所有文件对象。
2.从对象获取文件的名字。
3.对文件的名字做处理。
3.把处理后的文件名字和路径拼接祖成新路径
4.file的renameTo方法改变文件的名字

File file = new File("C:\\sqlite");
/*获取所有文件的对象*/
package com.file;
import java.io.File;
public class File1 {
    public static void main(String[] args) {
        File file = new File("C:\\sqlitedate");
        /*1.获取所有文件的对象*/
        File[] files = file.listFiles();
        for(File file1 : files){
            /*2.获取file对象的名字*/
            String name = file1.getName();
            /*3.截取下划线第一次出现的位置下标*/
            int start1 = name.indexOf("_");
            /*4.截取第二个下划线出现位置的下标*/
            int end1 = name.indexOf("_",name.indexOf("_")+1);
            /*5.截取文件的序号*/
            String name1 = name.substring(start1+1,end1);
            /*6.从文件的末尾开始截取第一次出现下划线的位置的下标*/
            int start2 = name.lastIndexOf("_");
            /*7.截取文件后缀以及文件名称*/
            String name2 = name.substring(start2);
            /*8.把序号和名字拼接成一个新的文件明*/
            String newname = name1+name2;
            /*9.把新的文件名和路径进行拼接组成新的目标对象*/
            File newfile = new File(file,newname);
            /*10.对文件对象进行重命名更改*/
            file1.renameTo(newfile);
        }
    }
}

用FileOutputstream向指定文件写入信息

步骤:
1.新建管道输出流FileOutputstream并指向指定文件
2.把想要写入的文件转换为byte类型的数组
3.把字符写入文件

package com.file;
import java.io.File;
import java.io.FileOutputStream;
public class File2 {
    public static void main(String[] args) throws Exception{
        /*1.获取文件输出流并指向指定文件*/
        FileOutputStream file = new FileOutputStream("C:\\sqlitedate\\aaa.txt");
        String word = "你好";
        /*2.把需要写入的字符转换为byte类型的数组*/
        byte []bytes = word.getBytes();
        /*3.写入文件*/
        file.write(bytes);
        file.close();
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章