Java 文件操作

一、输入输出流

输入输出流主要是用来读写文件,要想通过java提供的输入输出流读写文件中的内容就得到了解操作文件。

二、File类对象的创建和常用方法

File 类的定义 public class File

File 类的静态成员变量:

static String pathSeparator 与系统相关的路径分隔符 输出为;

static char pathSeparatorChar 与系统相关的路径分隔符 输出为;

static String separator 与系统相关的默认名称 - 分隔符字符 输出为 \

static char separatorChar 与系统相关的默认名称 输出为 \

java 复制代码
public class TestFileClass {
	public  static  void  main(String args[]){
		//File--java类--操作文件的java类
		//静态成员变量:
		//static String	pathSeparator 与系统相关的路径分隔符字符,为方便起见,表示为字符串。 
		//static char	pathSeparatorChar 与系统相关的路径分隔符。
		System.out.println("String	pathSeparator=="+File.pathSeparator); //String--;
		System.out.println("char	pathSeparatorChar=="+File.pathSeparatorChar); //char--;
		//static String	separator 与系统相关的默认名称 - 分隔符字符,以方便的方式表示为字符串。 
		//static char	separatorChar 与系统相关的默认名称分隔符。
		System.out.println("String	separator=="+File.separator); //String--\
		System.out.println("char	separatorChar=="+File.separatorChar); //char--\
		//"\"在文件路径中出现,它是路径分隔符
		//为什么需要使用静态成员变量表示路径分隔符?
		//原因是因为不同操作系统的路径分隔符不一样,所以需要使用静态成员变量来统一路径分隔符。
		//File.separator静态成员变量表示的路径分隔符会在不同的操作系统中被转换成适合当前操作系统的路径分隔符
		//F:\20220607\java基础\20220722Java基础(23)\文件操作.txt
		//输出错误
		//System.out.println("F:\20220607\java基础\20220722Java基础(23)\文件操作.txt");
		//使用强制转义字符来转义
		System.out.println("F:\\20220607\\java基础\\20220722Java基础(23)\\文件操作.txt");
		//使用File.separator静态成员变量来表示路径分隔符
		System.out.println("F:"+File.separator+"20220607"+File.separator+"java基础"+File.separator+"20220722Java基础(23)"+File.separator+"文件操作.txt");
	}
}

File类的构造方法:

File(String pathname) 通过给定的文件路径字符串创建新的 File 实例

File(String parent,String child) 通过给定的文件位置字符串和给定的文件名称字符串创建新的 File 实例

File(File parent,String child) 通过给定的文件位置File对象和给定的文件名称字符串创建新的 File实例

java 复制代码
public class TestFileClass2 {
	public  static  void  main(String args[]){
		//Flie类的构造方法
		//使用File类的构造方法创建出File类的对象并不会创建出真实的文件
		//仅仅只表示当前文件对象
		//File(String pathname) 通过给定字符串类型的文件路径创建新的 File实例。 
		String pathnamestr="F:"+File.separator+"mytest"+File.separator+"test1.txt";
		File  file1=new File(pathnamestr); 
		//File(String parent, String child) 通过给定的文件位置字符串和给定的文件名称字符串创建新的 File实例。
		String parent="F:"+File.separator+"mytest";
		String child="test1.txt";
		File file2=new File(parent,child);
		//File(File parent, String child) 通过给定的文件位置File对象和给定的文件名称字符串创建新的 File实例。
		//File parent--文件对象类型的位置
		//String child--String类型的文件名称
		String path="F:"+File.separator+"mytest";
		File pathFile=new File(path); //文件位置的文件对象
		String  filename="test1.txt"; //文件名称的字符串
		File  file3=new File(pathFile,filename);		
	}
}

File类的实例方法

java 复制代码
// String [] list 只能得到指定路径下所有文件或文件夹的名称
public class FileTestClass2 {
    public static void main(String[] args) throws Exception{
        String test_dir_path = test_father_dir_path+File.separator+"demo";
        File file = new File(test_father_dir_path);
        String name[] = file.list();
        for (String filename:name){
            System.out.println(filename);
        }
    }
}

 
//File[]	listFiles() 得到文件对象
public class FileTestClass3 {
    public static void main(String[] args) {
        //File[]	listFiles() 得到文件对象代表的文件夹中的所有文件和文件夹的文件对象,
        // 返回一个文件对象数组得到指定文件夹中的指定类型的文件
        String farther_path = "F:"+ File.separator+"wangxinghomework"+File.separator+"20230901";
        File file = new File(farther_path);
        File filelist[] = file.listFiles();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm");
        for (File file_list:filelist){
            //获得文件名称
            String filename=file_list.getName();
            //获得文件修改时间
            String filetime = simpleDateFormat.format(new Date(file_list.lastModified()));
            String filedaxiao = "";
            String filetype = "";
            if (file_list.isFile()){
                if (file_list.length()<1024){
                    filedaxiao = 1+" KB";
                }
                if (filedaxiao.length() == 0){
                    filedaxiao = 0+" KB";
                }
                if (filedaxiao.length()>=1024){
                    long daxiao = filedaxiao.length()/1024;
                    filedaxiao = daxiao+" KB";
                }
                String houzhui = filename.substring(filename.lastIndexOf("."));
                if (houzhui.equals(".txt")){
                    filetype = "文本文档";
                }
                if (houzhui.equals(".doc")){
                    filetype = "word文档";
                }
            }else {
                filetype = "文件夹";
            }
            System.out.println("文件名称:"+filename+"\t文件修改时间:"+filetime+"\t文件类型:"+filetype
            +"\t文件大小:"+filedaxiao);

        }
    }
}

|-------------------------|----------------------------------------------------------------------------------------|
| boolean exists() | 判断路径名表示的文件或目录是否存在 |
| boolean createNewFile() | 创建新文件 |
| boolean mkdirs() | 创建新的文件夹 |
| boolean delete() | 删除文件/文件夹 删除文件夹的时候要将该文件夹下的文件和子文件夹全部删除 |
| boolean canRead() | 判断文件是否可读 |
| boolean canWrite() | 判断文件是否可写 |
| boolean isHidden() | 判断文件是否为隐藏文件 |
| boolean isFile() | 判断文件对象是否为普通文件 |
| boolean isDirectory() | 判断文件对象是否为目录 |
| String getPath() | 得到文件对象的路径名字符串 |
| String getName() | 得到文件对象所表示的文件或目录的名称 |
| String getParent() | 得到文件对象所表示的路径的父目录路径 |
| long length() | 得到文件对象所表示的文件的长度 |
| long lastModified() | 得到文件对象所表示的文件上次修改的时间 |
| String[] list() | 得到文件对象代表的文件夹中的所有文件和文件夹名称返回一个字符串数组 ,只能的到指定路径下所有文件或文件夹的名字 |
| File[] listFiles() | 得到文件对象代表的文件夹中的所有文件和文件夹的文件对象,返回一个文件对象数组得到指定文件夹中的指定类型的文件,得到所有文件或文件夹的对象,可以调用对象的方法,获取其相应信息 |

相关推荐
The Future is mine22 分钟前
Python计算经纬度两点之间距离
开发语言·python
Enti7c23 分钟前
HTML5和CSS3的一些特性
开发语言·css3
腥臭腐朽的日子熠熠生辉29 分钟前
解决maven失效问题(现象:maven中只有jdk的工具包,没有springboot的包)
java·spring boot·maven
爱吃巧克力的程序媛30 分钟前
在 Qt 创建项目时,Qt Quick Application (Compat) 和 Qt Quick Application
开发语言·qt
ejinxian30 分钟前
Spring AI Alibaba 快速开发生成式 Java AI 应用
java·人工智能·spring
杉之36 分钟前
SpringBlade 数据库字段的自动填充
java·笔记·学习·spring·tomcat
圈圈编码1 小时前
Spring Task 定时任务
java·前端·spring
俏布斯1 小时前
算法日常记录
java·算法·leetcode
独好紫罗兰1 小时前
洛谷题单3-P5719 【深基4.例3】分类平均-python-流程图重构
开发语言·python·算法
27669582921 小时前
美团民宿 mtgsig 小程序 mtgsig1.2 分析
java·python·小程序·美团·mtgsig·mtgsig1.2·美团民宿