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

相关推荐
平凡的小码农8 分钟前
JAVA实现大写金额转小写金额
java·开发语言
一直在进步的派大星11 分钟前
Docker 从安装到实战
java·运维·docker·微服务·容器
老华带你飞15 分钟前
公寓管理系统|SprinBoot+vue夕阳红公寓管理系统(源码+数据库+文档)
java·前端·javascript·数据库·vue.js·spring boot·课程设计
yttandb22 分钟前
重生到现代之从零开始的C语言生活》—— 内存的存储
c语言·开发语言·生活
我明天再来学Web渗透26 分钟前
【hot100-java】【二叉树的层序遍历】
java·开发语言·数据库·sql·算法·排序算法
结衣结衣.39 分钟前
python中的函数介绍
java·c语言·开发语言·前端·笔记·python·学习
茫茫人海一粒沙42 分钟前
Python 代码编写规范
开发语言·python
原野心存43 分钟前
java基础进阶知识点汇总(1)
java·开发语言
程序猿阿伟1 小时前
《C++高效图形用户界面(GUI)开发:探索与实践》
开发语言·c++
暗恋 懒羊羊1 小时前
Linux 生产者消费者模型
linux·开发语言·ubuntu