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() | 得到文件对象代表的文件夹中的所有文件和文件夹的文件对象,返回一个文件对象数组得到指定文件夹中的指定类型的文件,得到所有文件或文件夹的对象,可以调用对象的方法,获取其相应信息 |

相关推荐
XiaoLeisj2 小时前
【JavaEE初阶 — 多线程】单例模式 & 指令重排序问题
java·开发语言·java-ee
paopaokaka_luck2 小时前
【360】基于springboot的志愿服务管理系统
java·spring boot·后端·spring·毕业设计
dayouziei2 小时前
java的类加载机制的学习
java·学习
励志成为嵌入式工程师3 小时前
c语言简单编程练习9
c语言·开发语言·算法·vim
捕鲸叉3 小时前
创建线程时传递参数给线程
开发语言·c++·算法
A charmer3 小时前
【C++】vector 类深度解析:探索动态数组的奥秘
开发语言·c++·算法
Peter_chq3 小时前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
Yaml44 小时前
Spring Boot 与 Vue 共筑二手书籍交易卓越平台
java·spring boot·后端·mysql·spring·vue·二手书籍
小小小妮子~4 小时前
Spring Boot详解:从入门到精通
java·spring boot·后端
hong1616884 小时前
Spring Boot中实现多数据源连接和切换的方案
java·spring boot·后端