File,io 流(一)

存诸数据的方案

变量01数组02集合03 对象04
double money=9999.5; int[] age=new int[100]; List<Student> students 
=new ArrayList<>(); 
Student s=new Student() 

它们都是内存中的数据容器,它们记住的数据,在断电,或者程序终止时会丢失.

有些数据想长久保存起来,咋整?

File

文件是非常重要的存储方式,在计算机硬盘中。
即便断电,或者程序终止了,存储在硬盘文件中的数据也不会丢失。

File是java.io.包下的类,File类的对象,用于代表当前操作系统的文件(可以是文件、或文件夹)。

获取文件信息(大小,文件名,修改时间) 
创建文件/文件夹删除文件/文件夹
判断文件的类型
... 
注意:File类只能对文件本身进行操作,不能读写文件里面存储的数据。

IO流

用于读写数据的(可以读写文件,或网络中的数据)

File:代表文本
io流:读写数据

创建File类的对象

构造器说明
public File(String pathname) 根据文件路径创建文件对象
public File(String parent,String child) 根据父路径和子路径名字创建文件对象
public File(File parent,String child) 根据父路径对应文件对象和子路径名字创建文件对象

注意


File对象既可以代表文件、也可以代表文件夹。
File封装的对象仅仅是一个路径名,这个路径可以是存在的,也允许是不存在的。

绝对路径、相对路径
绝对路径:从盘符开始 
File file1=new File("D://itheimalla.txt”); 
相对路径:不带盘符,默认直接到当前工程下的目录寻找文件。
File file3=new File(“模块名\\a.txt”);

import java.io.File;

//掌握File创建对象,代表具体文件的方案
public class File1 {
    public static void main(String[] args) {
//创建一个具体的文件,指代某个具体的文件
        //File f1=new File("G:\\heima1.txt\\heima.txt");
        //File f1=new File("G:/heima1.txt/heima.txt");
        File f1=new File("G:"+File.separator+"heima1.txt"+File.separator+"heima.txt");
        System.out.println(f1.length());//文件大小
        File f2=new File("F:\\统计学习课件");
        System.out.println(f2.length());
        //注意:File对象可以指代一个不存在的文件路径
        File f3=new File("G:\\今天");
        System.out.println(f3.length());
        System.out.println(f3.exists());
        //绝对路径:带盘符的
        //相对路径:不带盘符的,默认是直接去工程下寻找文件的
        //File f4=new File("D:\\code\\weilai1\\src\\itheima.txt");
        File f4=new File("src\\\\itheima.txt");
        System.out.println(f4.length());
        System.out.println(f4.exists());
    }
}

File提供的判断文件类型、获取文件信息功能
方法名称及说明


public boolean exists() 判断当前文件对象,对应的文件路径是否存在,存在返回true 
public boolean isFile() 判断当前文件对象指代的是否是文件,是文件返回true,反之。
public boolean isDirectory() 判断当前文件对象指代的是否是文件夹,是文件夹返回true,反之。
public String  getName() 获取文件的名称(包含后缀) 
public long length() 获取文件的大小,返回字节个数
public long lastModified() 获取文件的最后修改时间。
public String getPath() 获取创建文件对象时,使用的路径
public String getAbsolutePath()获取绝对路径

import java.io.File;
import java.text.SimpleDateFormat;

//目标:掌握File提供的判断文件类型、获取文件信息功能
public class File2 {
    public static void main(String[] args) {
        //1.创建文件对象,指代某个文件
        File file=new File("G:/heima1.txt/heima.txt");
//2、public boolean exists(0:判断当前文件对象,对应的文件路径是否存在,存在返回true.
        System.out.println(file.exists());

//3、public boolean isFile():判断当前文件对象指代的是否是文件,是文件返回true,反之。
        System.out.println(file.isFile());

//4、public boolean isDirectory(:判断当前文件对象指代的是否是文件夹,是文件夹返回true,反之。
        System.out.println(file.isDirectory());

//5.public String getName(:获取文件的名称(包含后缀)
        System.out.println(file.getName());

//6.public long Length():获取文件的大小,返回字节个数
        System.out.println(file.length());

//7.pUblic Long lastModified(:获取文件的最后修改时间。
       // System.out.println(file.lastModified());
       long time= file.lastModified();
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(sdf.format(time));

//8.pubLic String getPath(:获取创建文件对象时,使用的路径
        System.out.println(file.getPath());

//9.public String  getAbsoLutePath(0:获取绝对路径
        System.out.println(file.getAbsolutePath());
    }
}

File类创建文件的功能

方法名称说明
public boolean createNewFile() 创建一个新的空的文件
public boolean mkdir() 只能创建一级文件夹
public boolean mkdirs() 可以创建多级文件夹


File类删除文件的功能

方法名称说明
public boolean delete() 删除文件、空文件夹


注意:

delete方法默认只能删除文件和空文件夹,删除后的文件不会进入回收站。


File类提供的遍历文件夹的功能

方法名称说明
public String[ ]  list() 获取当前目录下所有的"一级文件名称"到一个字符串数组中去返回。
public File[ ] listFiles() 获取当前目录下所有的"一级文件对象"到一个文件对象数组中去返回(重点) 
import java.io.File;

public class File4 {
    //目标:掌握File提供的遍历文件夹的方法
    public static void main(String[] args) {
        File file=new File("G:\\今天");
          //1、public String[] List(:获取当前目录下所有的"一级文件名称"到一个字符串数组中去返回。一一
String []list=file.list();
        for (String s : list) {
            System.out.println(s);
        }
         //2、public File[]listFiles(:(重点)获取当前目录下所有的"一级文件对象"到一个文件对象数组中去返回(重点)
        File[]files=file.listFiles();
        for (File file1 : files) {
            System.out.println(file1);
        }
    }
}

使用listFiles方法时的注意事项:

当主调是文件,或者路径不存在时,返回null 
当主调是空文件夹时,返回一个长度为0的数组
当主调是一个有内容的文件夹时,将里面所有一级文件和文件夹的路径放在File数组中返回
当主调是一个文件夹,且里面有隐藏文件时,将里面所有文件和文件夹的路径放在File数组中返回,包含隐藏文件
当主调是一个文件夹,但是没有权限访问该文件夹时,返回null

案例

import java.io.File;

public class AnLi {
    public static void main(String[] args) {
        //目标:改变某个文件夹下的视频序号,要求从19开始
        File file=new File("E:/磊哥面授/java基础/视频");
        //拿到下面的全部视频,一级文件对象
        File [] files=file.listFiles();
        //一个一个的找
        for (File file1 : files) {
            //拿到它的名字,改成新名字
            String name=file1.getName();
            String index=name.substring(0,name.indexOf("、"));
            String lastName=name.substring(name.indexOf("、"));
            String newName=(Integer.valueOf(index)+18)+lastName;
            //正式改名
            file1.renameTo(new File(file,newName));

        }

    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/591321.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

解锁AI新纪元:如何用好大语言模型?

在20世纪末和21世纪初&#xff0c;⼈类经历了两次信息⾰命的浪潮&#xff1a; 第⼀次是互联网时代的兴起&#xff0c;将世界各地连接在⼀起&#xff0c;改变了⼈们获取信息和交流的⽅式。 第⼆次则是移动互联网时代的到来&#xff0c;智能⼿机和移动应⽤程序的普及使⼈们可以…

Oracle 数据库全面升级为 23ai

从 11g 到 12c 再到 19c&#xff0c;今天&#xff0c;我们迎来了 23ai &#xff01; “ Oracle AI Vector Search allows documents, images, and relational data that are stored in mission-critical databases to be easily searched based on their conceptual content Ge…

平平科技工作室-Python-猜数字游戏

一.代码展示 import random print(__猜数字游戏__) print(由平平科技工作室制作) print(游戏规则:1至10随机数随便猜) print (三次没猜对游戏结束) numrandom.randint (1,10) for i in range(3):aint(input(输入你想要猜测的数字))if a>num:print (数字猜的有点大了)elif a…

MySQL-数据缓冲池(Buffer Pool)

InnoDB存储引擎以 页 为单位管理存储空间&#xff0c;增删改查的本质就是访问页面。为提高查询效率&#xff0c;DBMS会占用内存作为缓冲池&#xff0c;在执行SQL之前&#xff0c;会将磁盘上的页 缓存到内存中的 缓冲池&#xff08;Buffer Pool&#xff09;后执行相关SQL语句。 …

git学习指南

文章目录 一.版本控制1.认识版本控制2.版本控制功能3.集中式版本控制4.分布式版本控制 二.Git的环境安装搭建1.Git的安装2.Git配置分类3.Git配置选项 三.Git初始化本地仓库1. git init/git clone-获取Git仓库2. 本地仓库文件的划分3. git status-检测文件的状态4. git add-文件…

数据库基础--MySQL多表查询之外键约束

MySQL多表关系 一对一 顾名思义即一个对应一个的关系&#xff0c;例如身份证号对于每个人来说都是唯一的&#xff0c;即个人信息表与身份证号信息表是一对一的关系。车辆信息表与车牌信息表也是属于一对一的关系。 一对多 即一个表当中的一个字段信息&#xff0c;对应另一张…

黑马面试篇1

目录 一、面试准备 二、Redis篇 ​编辑1. 布隆过滤器&#xff1a; 2. 缓存击穿概念&解决方案 3. 双写一致 4. 持久化 1&#xff09;RDB的执行原理&#xff1f; 2&#xff09;AOF vs RDB 5. 数据过期策略 6. 数据淘汰策略 7. 分布式锁 8. Redis集群 1&#xff…

如何选择一个出色的APP内测分发平台 - 探讨小猪APP分发平台

在众多APP内测分发平台中如何选择一个出色的APP内测分发平台 - 探讨小猪APP分发平台&#xff0c;小猪APP分发平台&#xff08;zixun.ppzhu.net&#xff09;以其出色的服务和高效的推广机制成为行业佼佼者。 小猪APP分发平台的核心优势 小猪APP分发平台不仅以其用户友好的界面赢…

Coze扣子开发指南:搭建一个免费的微信公众号AI客服

运营微信公众号的自媒体&#xff0c;现在借助Coze扣子可以非常好用而且免费的7*24客服了&#xff0c;完全不需要任何编程基础&#xff0c;操作非常简单&#xff1a; 打开Coze扣子&#xff0c;新建一个bot&#xff0c;输入bot名称、功能介绍和图标&#xff1a; 选择大语言模型&…

论文笔记(四十五)Attention Is All You Need

Attention Is All You Need 文章概括摘要1. 介绍2. 背景3. 模型架构3.1 编码器和解码器堆栈3.2 Attention3.2.1 按比例点积Attention3.2.2 Multi-Head Attention3.2.3 注意力在模型中的应用 3.3 定位前馈网络3.4 嵌入与 Softmax3.5 位置编码 4 为什么 Self-Attention5. Trainin…

OpenWRT部署Zerotier虚拟局域网实现内网穿透

前言 细心的小伙伴肯定已经发现了&#xff1a;电脑上部署了Zerotier&#xff0c;如果路由器也部署了OpenWRT&#xff0c;那是否能远程访问呢&#xff1f; 答案是肯定的。 OpenWRT部署Zerotier有啥好处&#xff1f; 那好处必须多&#xff0c;其中的一个便是在外远程控制家里…

Win11安装Postgresql(更新于24.5)

Postgresql是一个功能强大的开源对象关系数据库系统&#xff0c;拥有超过 35 年的积极开发经验&#xff0c;这为其在可靠性、功能稳健性和性能方面赢得了良好的声誉。 1.安装程序下载 根据系统版本型号选择对应安装程序完成下载 网址&#xff1a; https://www.enterprisedb…

自定驾驶A*算法的思路

1. 背景 2 算法理论 2. 1.A*算法公式 2.2. H是不确定的 2.4. H使用的启发函数 2.5. 曼哈顿距离

电机控制系列模块解析(14)—— 脉冲频率/幅值/密度调制

一、脉冲序列调制&#xff08;PSM&#xff09; 脉冲宽度调制&#xff08;PWM&#xff09;、脉冲幅值调制&#xff08;PAM&#xff09;和脉冲密度调制&#xff08;PDM&#xff09;都是脉冲序列调制技术&#xff0c;它们通过改变脉冲信号的某一特性&#xff08;宽度、幅值或密度…

机器学习每周挑战——二手车车辆信息交易售价数据

这是数据集的截图 目录 背景描述 数据说明 车型对照&#xff1a; 燃料类型对照&#xff1a; 老规矩&#xff0c;第一步先导入用到的库 第二步&#xff0c;读入数据&#xff1a; 第三步&#xff0c;数据预处理 第四步&#xff1a;对数据的分析 第五步&#xff1a;模型建…

深入了解 Arthas:Java 应用程序诊断利器

序言 在 Java 应用程序的开发和运维过程中&#xff0c;诊断和解决性能问题是一项非常重要的任务。而 Arthas 作为一款由阿里巴巴开发的 Java 应用程序诊断工具&#xff0c;提供了一系列强大的功能&#xff0c;帮助开发人员实时监控、诊断和调优Java 应用程序。本文将深入介绍 …

压缩机的实际制冷量

制冷压缩机是制冷系统的“心脏”&#xff0c;吸收来自蒸发器的制冷剂蒸气&#xff0c;提高压力后排气到冷凝器&#xff0c;使制冷剂在系统中循环流动。 按温度范围可以分为高温&#xff0c;中温&#xff0c;低温制冷压缩机。按密封结构形式分类为开启式&#xff1b;半封闭式&a…

深度学习每周学习总结P7(咖啡豆识别)

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 –来自百度网盘超级会员V5的分享 数据链接 提取码&#xff1a;7zt2 –来自百度网盘超级会员V5的分享 目录 0. 总结1. 数据导入及处理部分…

【Linux】学习笔记

文章目录 [toc]第一章&#xff1a;基础篇01|课程介绍02|内容综述03|什么是Linux04|Linux的内核版本及常见发行版内核版本发行版本Red Hat Enterprise LinuxFedoraCentOSDebianUbuntu 05|安装VirtualBox虚拟机VirtualBox下载url 06|在虚拟机中安装Linux系统Linux安装镜像下载 07…

020、Python+fastapi,第一个Python项目走向第20步:ubuntu 24.04 docker 安装mysql8、redis(一)

系列文章 pythonvue3fastapiai 学习_浪淘沙jkp的博客-CSDN博客https://blog.csdn.net/jiangkp/category_12623996.html 前言 docker安装起来比较方便&#xff0c;不影响系统整体&#xff0c;和前面虚拟环境有异曲同工之妙&#xff0c;今天把老笔记本T400拿出来装了个ubuntu24…