首页 > 其他分享 >p1 文件的基本使用

p1 文件的基本使用

时间:2023-06-04 10:11:23浏览次数:46  
标签:基本 文件 p1 File System file println out

文件的基本使用

一、文件

  • 什么是文件

    文件是保存数据的地方,比如word文档,txt文件,excel文件……都是文件。即可以保存一张图片,也可以保持视频,声音……

  • 文件流

    文件在程序中是以流的形式来操作的

    文件流

    流:数据在数据源(文件)和程序(内存)之间经历的路径

    输入流: 数据从数据源(文件)到程序(内存)的路径

    输出流:数据从程序(内存)到数据源(文件)的路径

二、常用的文件操作

1. 创建文件对象相关构造器和方法

  1. new File(String pathName) :根据路径构建一个File对象,类似绝对路径
  2. new File(File parent, String child):根据父目录文件夹和子路径构建,类似根据相对路径
  3. new File(String parent, String child):根据父目录 和 子路径构建
  4. createNewFile(): 创建新文件
  • 代码演示:

    import org.junit.jupiter.api.Test;
    
    import java.io.File;
    import java.io.IOException;
    
    
    /**
     * @author
     * @version 1.0
     * 演示创建文件
     */
    public class FileCreate {
        public static void main(String[] args) {
    
        }
    
        //方式1 new File(String pathName),类似根据绝对路径创建?
        @Test
        public void create01(){
            String pathName = "e:\\news1.txt";
            File file = new File(pathName);//创建文件对象,此时只是有一个对象在jvm内存中
            try {
                file.createNewFile();//创建文件,这里才对磁盘做出操作,创建出文件
                System.out.println("文件创建成功");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        //方式2 new File(File parent, String child),类似根据相对路径创建?
        //根据父目录文件夹和子路径构建
        @Test
        public void create02(){
            File parentFile = new File("e:\\");
            String fileName = "news2.txt";
            File file = new File(parentFile, fileName);//创建文件对象
    
            try {
                file.createNewFile();//创建文件
                System.out.println("文件创建成功");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        //方式3 new File(String parent, String child),根据父目录 + 子路径构建
        @Test
        public void create03(){
    //        String parentPath = "e:\\";
            String parentPath = "e:/";//也可以这么写
            String fileName = "news3.txt";
            File file = new File(parentPath, fileName);
            try {
                file.createNewFile();
                System.out.println("文件创建成功");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    
    

2. 获取文件的相关信息的方法

  • getName(),getAbsolutePath(),getParent(),length(),exists(),isFile(),isDirectory()

  • 代码演示:

    import org.junit.jupiter.api.Test;
    
    import java.io.File;
    import java.io.IOException;
    
    public class FileInformation {
        public static void main(String[] args) {
    
        }
        //获取文件信息
        @Test
        public void info(){
            //创建文件对象
            File file = new File("e:\\news1.txt");//File对象只是一个路径,可能是文件也可能是目录(文件夹)
    //        try {
    //            file.createNewFile();
    //        } catch (IOException e) {
    //            e.printStackTrace();
    //        }
            //获取文件名字
            System.out.println("文件名字 = " + file.getName());
            //文件绝对路径
            System.out.println("文件绝对路径 = " + file.getAbsolutePath());
            //文件父目录
            System.out.println("文件父目录 = " + file.getParent());
            //文件大小
            System.out.println("文件大小 = " + file.length());
            //文件是否存在
            System.out.println("文件是否存在 = " + file.exists());
            //该对象对应的是不是文件
            System.out.println("是不是一个文件 = " + file.isFile());
            //该对象对应的是不是目录
            System.out.println("是不是一个目录 = " + file.isDirectory());
        }
    }
    
    /*
    运行结果:
    文件名字 = news1.txt
    文件绝对路径 = e:\news1.txt
    文件父目录 = e:\
    文件大小 = 18
    文件是否存在 = true
    是不是一个文件 = true
    是不是一个目录 = false
    */
    

3. 目录的操作和文件删除

  • mkdir():创建一级目录
  • mkdirs():创建多级目录
  • delete():删除空目录或文件

代码演示:

import org.junit.jupiter.api.Test;

import java.io.File;

public class Directory_ {
    public static void main(String[] args) {

    }
    //判断 e:\\news1.txt 是否存在,存在就删除
    @Test
    public void m1(){
        String filePath = "e:\\news1.txt";
        File file = new File(filePath);
        if(file.exists()){
            if(file.delete()){
                System.out.println(filePath + " 删除成功");
            }else {
                System.out.println(filePath + " 删除失败");
            }
        }else {
            System.out.println("文件不存在……");
        }
    }

    //判断 D:\\demo02 是否存在,存在就删除
    //目录也是文件
    @Test
    public void m2(){
        String filePath = "D:\\demo02";
        File file = new File(filePath);
        if(file.exists()){
            if(file.delete()){
                System.out.println(filePath + " 删除成功");
            }else {
                System.out.println(filePath + " 删除失败");
            }
        }else {
            System.out.println("该目录不存在……");
        }
    }

    //判断D:\\demo\\a\\b\\c 目录是否存在,如果存在就提示已经存在,否则就创建
    @Test
    public void m3(){
        String directoryPath = "D:\\demo\\a\\b\\c";
        File file = new File(directoryPath);
        if(file.exists()){
            System.out.println(directoryPath + "存在...");
        }else {
            if (file.mkdirs()){//创建一级目录用mkdir(),创建多级目录使用mkdirs()
                System.out.println(directoryPath + "创建成功...");
            }else{
                System.out.println(directoryPath + "创建失败...");
            }
        }
    }

}

标签:基本,文件,p1,File,System,file,println,out
From: https://www.cnblogs.com/zh-Note/p/17455265.html

相关文章

  • 进程的基本认识
    进程进程的提出是为什么?因为程序,计算机中运行程序是并不止一个的,为了如何方便地管理这些程序,操作系统提出了进程这个抽象的概念,相当于每一个进程都有一个运行中的程序进程能够同时执行是为什么?CPU的调度,也就是操作系统提出的上下文切换,通过保存和恢复进程在运行中的......
  • msi和exe文件区别
    msi是Windowsinstaller开发出来的程序安装文件,它可以让你安装,修改,卸载你所安装的程序.说白了msi就是Windowsinstaller的数据包,把所有和安装文件相关的内容封装在一个包里了.setup.exe也允许你安装程序,但程序员在开发setup.exe的时候要比开发setup.msi困难的多,需要人工编写......
  • windows按修改日期范围搜索文件
    *Mapper.xml修改日期:2021/‎9/‎21..‎2021/‎9/‎28......
  • 文件名特殊字符去除
    java去掉特殊字符工具类packagecom.pig4cloud.pigx.edi.utils;importjava.util.Arrays;/***文件名去掉特殊字符*/publicclassFileNameCleanerUtil{finalstaticint[]illegalChars={34,60,62,124,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,1......
  • HTTP Boot(即基于HTTP的引导)是一种网络引导协议,它使用HTTP作为文件传输协议,支持远程引
    HTTPBoot(即基于HTTP的引导)是一种网络引导协议,它使用HTTP作为文件传输协议,支持远程引导、安装和部署操作系统和应用程序。与传统的PXE(PrebooteXecutionEnvironment)方式相比,HTTPBoot具有更高的灵活性、可扩展性和安全性。HTTPBoot可以通过以下步骤实现:启动计算机后,BIOS会向......
  • table.bootstrapTable() 之基本使用方法
    一、Html表格table属性设置如下 data-toggle="table"data-url="Url地址"data-pagination="true"data-search="true"data-show-columns="true"data-show-refresh="true"data-show-toggle="true"data-page-......
  • winform中使用yaml配置文件
    1、引入nuget包NetEscapades.Configuration.YamlMicrosoft.Extensions.Configuration.Binder引入上面两个包2、新增yaml文件可以新增到目录中,也可以放在根目录,我这边新增到了Conf文件夹中。创建一个Conf文件夹,然后里面创建一个myconfig.yaml文件。......
  • VSCode 如何将已编辑好的python文件中的 tab 键缩进转换成4个空格键缩进
    事情起源:使用vscode维护一个7年前的python项目,发现编辑后运行报错,提示缩进错误,原因是当时的项目使用tab做缩进,而我正在用的vscode是使用4空格做缩进,因此造成了缩进不匹配的问题。  如何解决?把自己的vscode缩进从4空格改为tab貌似是最可行的,但是考虑其他项目的匹配问题又总不能老......
  • Request类源码分析、序列化组件介绍、序列化类的基本使用、常用字段类和参数、反序列
    目录一、Request类源码分析二、序列化组件介绍三、序列化类的基本使用查询所有和查询单条四、常用字段类和参数(了解)常用字段类字段参数(校验数据来用的)五、反序列化之校验六、反序列化之保存七、APIVIew+序列化类+Response写的五个接口代码八、序列化高级用法之source(了解)九、......
  • 使用vscode sftp插件快速上传源码文件
    1.首先安装vscode插件2.使用ctrl+shift+p或者view-commandpalette打开命令面板,输入sftp并按enter键,出现编辑配置文件界面3.输入对应的主机名,密码,或者密钥文件即可{"name":"47.100.101.152","host":"47.100.101.152","protocol":"sftp",......