File、IO流(一)

File、IO流

File

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

注意:File类只能对文件本身进行操作,不能读写文件里面存储的数据

IO流

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

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

File

创建对象

创建File类的对象

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

 注意

  • File对象既可以代表文件、也可以代表文件夹。
  • File封装的对象仅仅是一个路径名,这个路径可以是存在的,也允许是不存在的。
绝对路径、相对路径
  • 绝对路径:从盘符开始

  •  相对路径:不带盘符,默认直接到当前工程下的目录寻找文件

import java.io.File;

public class Test {
    public static void main(String[] args) {
        // 创建一个File对象,指代某个具体的文件
        // 路径分隔符
        //File f1 = new File("D:/resource/ab.txt");
        //File f1 = new File("D:\\resource\\ab.txt");
        File f1 = new File("D:" + File.separator + "resource" + File.separator + "ab.txt");
        System.out.println(f1.length());

        File f2 = new File("D:/resource");
        System.out.println(f2.length());

        // 注意:File对象可以指代一个不存在的文件路径
        File f3 = new File("D:/resource/aaaa.txt");
        System.out.println(f3.length());
        System.out.println(f3.exists());

        // 绝对路径:带盘符的
        // File f4 = new File("D:\\code\\javasepromax\\file-io-app\\src\\ithema.txt");
        // 相对路径(重点):不带盘符,默认是直接去工程下寻找文件
        File f4 = new File("file-io-app\\\\src\\\\ithema.txt");
        System.out.println(f4.length());
    }
}

File常用方法

FIle提供的判断文件类型功能

 FIle类创建文件的功能

FIle类删除文件的功能

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

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

 使用listFiles方法时的注意事项:
  • 当主调是文件,或者路径不存在时,返回null
  • 当主调是空文件夹时返回一个长度为0的数组
  • 当主调是一个由内容的文件夹时,将里面所有以及文件和文件夹的路径放在File数组在返回
  • 当主调是一个文件夹,且里面有隐藏文件时,将里面所有文件和文件夹的路径放在File数组中返回,包含隐藏文件
  • 当主调是一个文件夹,但是没有访问权限访问该文件时,返回null

练习

需求:改变某个文件夹下视频的序号,要求从19开始

import java.io.File;

public class Test {
    public static void main(String[] args) {
       // 目标:改变某个文件夹下视频的序号,要求从19开始
        File dir = new File("D:\\void\\视频");

        // 拿到下面全部的视频,以及文件对象
        File[] voideos = dir.listFiles();

        // 一个一个找
        for (File voideo : voideos) {
            // 拿到它的名字,改成新名字
            String name = voideo.getName();
            String index = name.substring(0,name.indexOf("、"));
            String lastName = name.substring(name.indexOf("、"));
            String newName = (Integer.valueOf(index) + 18) + lastName;

            // 正式改名
            voideo.renameTo(new File(dir,newName));
        }
    }
}

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

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

相关文章

二叉树-堆实现

目录 Test.c测试代码 test1 test2 test3 🎇Test.c总代码 Heap.h头文件&函数声明 头文件 函数声明 🎇Heap.h总代码 Heap.c函数实现 ☁HeapInit初始化 ☁HeapDestroy销毁 ☁HeapPush插入数据 【1】插入数据 【2】向上调整Adjustup❗ …

nginx负载均衡案例

大家好今天给大家带来nginx负载均衡实验案例,首大家先看一下我的各类版本信息。(还有两台设备信息相同就不展示了) 一,搭建nginx环境 ❶首先创建Nginx的目录并进入: [rootlocalhost]# mkdir /soft && mkdir /soft/nginx…

java-JUC并发编程学习笔记03(尚硅谷)

线程间通信 例子: 对一个值1 -1交替完成,a的值就是1 b的值就是0 这个过程就是线程间通信 Synchronized实现: 虚假唤醒问题: 我们再添加两个线程。 我们发现我们的结果就不对了。 我们只需要使用while即可。 我们线程通信的最后一…

商品主图重复如何处理?淘宝、拼多多和阿里巴巴多店铺商品上架运营技巧

采集铺货的时候,商品主图重复上架有什么影响? 我们在1688、阿里国际站等采集货品,在抖音、淘宝、京东和拼多多进行售卖的时候,由于货源类似,经常会发现商品重复,无法在平台获得有效流量。以企业为纬度&…

【保驾护航】HarmonyOS应用开发者基础认证-题库-2024

通过系统化的课程学习,熟练掌握DevEco Studio,ArkTS,ArkUI,预览器,模拟器,SDK等HarmonyOS应用开发的关键概念,具备基础的应用开发能力。 考试说明 1、考试需实名认证,请在考前于个…

【云原生】consul自动注册,实现负载均衡器与节点服务应用解耦,批量管理容器

目录 一、consul解决了什么问题? 二、consul的模式 三、consul的工作原理 四、实操consul连接负载均衡与容器 步骤一:完成consul的部署 步骤二:完成gliderlabs/registrator:latest镜像的拉取,并完成启动 步骤三:…

二维数组的学习

前言 在前面我们学习了一维数组,但是有的问题需要用二位数组来解决。 二维数组常称为矩阵,把二维数组写成行和列的排列形式,可以有助于形象化的理解二维数组的逻辑结构。 一、二维数组的定义 二维数组定义的一般格式: 数据类型 数…

最新GPT4.0使用教程,AI绘画-Midjourney绘画,GPT语音对话使用,DALL-E3文生图+思维导图一站式解决

一、前言 ChatGPT3.5、GPT4.0、GPT语音对话、Midjourney绘画,文档对话总结DALL-E3文生图,相信对大家应该不感到陌生吧?简单来说,GPT-4技术比之前的GPT-3.5相对来说更加智能,会根据用户的要求生成多种内容甚至也可以和…

企业资产管理软件市场分析:预计2029年将达到91亿美元

固定资产是企业资产重要的组成部分,是企业赖以生存的基础,加强固定资产管理,对于保障企业稳定发展有着重要意义。但是,不少企业因资产管理模式落后,以致各项资产信息无法及时传递与共享,资产损耗和及时维护…

c语言学习笔记之字符串库函数和逗号表达式

逗号表达式 #include <stdio.h>int main(){int a 10;int b 5;int c 6;int d (a 23,b a-4,c b2);printf("%d",d); }打印结果为: 逗号表达式,从左往右依次进行,将最后一个表达式的值赋值给变量. c语言字符串相关库函数 求字符串长度strlen长度不受限制的…

【Linux】线程安全

线程安全 一、Linux线程互斥1、进程线程间的互斥相关背景概念&#xff08;1&#xff09;临界区和临界资源&#xff08;2&#xff09;互斥和原子性出现负数原因为什么--ticket不是一个原子操作&#xff1f; 2、互斥量mutex&#xff08;1&#xff09;互斥量的接口i、初始化互斥量…

[嵌入式软件][入门篇][仿真平台] STM32CubeMX的搭建

文章目录 一、简介二、STM32CubeMX的使用(1) 新建文件&#xff0c;芯片选型(2) sys设置和RCC设置(3) 配置时钟(4) 生成代码 三、仿真平台的使用 一、简介 STM32CubeMX是一种图形工具&#xff0c;通过分步过程可以非常轻松地配置STM32微控制器和微处理器&#xff0c;生成相应的初…

Java项目:基于SSM框架实现的医疗企业管理系统(ssm+B/S架构+源码+数据库+毕业论文)

一、项目简介 本项目是一套ssm815基于SSM框架实现的医疗企业管理系统&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&am…

【wvp】关于码率等的相关流程设计

目录 流程设计 前端UI大致设计 终端上的相关修改界面参考 流程设计 前端UI大致设计 终端上的相关修改界面参考

Apache SeaTunnel (不含web) Window11 本机搭建(非源码)

启动环境 需要提前准备的(只提供作者试过且可行的方案) window11ubuntu20(wsl2) window11内置ubuntu的方式自行百度&#xff0c;此处不做陈述jdk8mysql8navicatvscode 环境准备不做过多陈述&#xff0c;以下是正式的安装启动步骤 SeaTunnel 2.3.3 资源准备 第一步: 创建文件…

java8 Duration类学习

Duration类 官网地址 基于时间的时间量&#xff0c;例如“34.5秒”。 此类以秒和纳秒为单位对时间的量或量进行建模。它可以使用其他基于持续时间的单位访问&#xff0c;如分钟和小时。此外&#xff0c;可以使用DAYS单位&#xff0c;并将其视为完全等于24小时&#xff0c;从…

5-1 A. DS串应用--KMP算法

题目描述 学习KMP算法&#xff0c;给出主串和模式串&#xff0c;求模式串在主串的位置 算法框架如下&#xff0c;仅供参考 输入 第一个输入t&#xff0c;表示有t个实例 第二行输入第1个实例的主串&#xff0c;第三行输入第1个实例的模式串 以此类推 输入样例&#xff1a; 3 qwe…

2024-01-29 ubuntu 用脚本设置安装交叉编译工具链路径方法,设置PATH环境变量

一、设置PATH环境变量的方法,建议用~/.bash_profile的方法&#xff0c;不然在ssh登录的时候可能没有设置PATH. 二、下面的完整的脚本&#xff0c;里面的echo "export PATH$build_toolchain_path:\$PATH" >> $HOME/.bashrc 就是把交叉编译路径写写到.bashrc设置…

回文子字符串的个数

判断一个字符串是否是一个回文除了从两端向里移动指针&#xff0c;也可以采用指针从字符串中心开始向两端延伸。即如果存在一个长度为m的回文子字符串&#xff0c;再分别向该回文两端延伸一个字符&#xff0c;并判断这两个字符是否相同&#xff0c;如果相同则找到了一个长度为m…

腾讯云部署vue+node项目

文章目录 一、安装宝塔二、vue项目部署三、node项目部署 前言: 关于项目部署,一开始也是找了很多资料,费了点时间,所以记录一下。希望能对各位有所帮助。 一、安装宝塔 1.首先在控制台,进入云服务器的终端界面 2.输入命令和密码获取权限,并且安装宝塔界面 yum install -y w…