首页 > 其他分享 >IO流、File文件操作、文件操作

IO流、File文件操作、文件操作

时间:2023-03-13 13:13:07浏览次数:37  
标签:文件 File 对象 int 文件夹 IO 字节

文件操作

1.File类

File类是用于操作文件和文件夹的一种方式,可以针对文件和文件夹完成增删改查操作。

路径分隔符:

针对windows默认采用\作为分隔符

Linux、unix系统默认采用了/,同时Windows页支持

常用方法

File(String file);
	//file:文件路径,用于实例化File对象
File(String parent,String childName);
	//parent:父级目录,childName:子文件或子文件夹名称,用于实例化File对象
File(File parent,String childName);
	//parent父级目录File对象,childName:子文件夹或子文件名称,用于实例化File对象

1.1文件(文件夹创)操作

调用File对象在File对象存储的路径下创建文件

【注意】:

​ 检查路径合法性

​ 文件是否已经存在

​ 是否拥有操作权限

boolean createFile();
	//通过File类对象调用,创建文件
boolean mkdir();
	//通过File类对象调用,创建文件夹
mkdirs()
    //通过File类对象调用,创建多级目录

1.2文件(文件夹)移动重命名操作

同级移动等于重命名

boolean renameTo(File dest);
	//通过File类对象调用,文件移动,重命名。dist目标路径

1.3文件(文件夹)删除操作

boolean delete();
	//通过File类对象调用,删除文件夹或文件,要求文件夹内不能有内容,删除内容不是放入回收站,会直接抹掉
void deleteOnExit();
	//通过File类对象调用,在程序退出后删除文件或文件夹,可以用于清理缓存,缓冲文件

1.4判断方法

boolean isFile();
	//判断是否是普通文件
boolean isDirectory();
	//判断是否是文件夹
boolean exist();
	//判断文件或文件夹是否存在
boolean isAbsoulte();
//判断是否使用绝对路径
boolean isHidden();
	//判断是否隐藏文件或隐藏文件夹

1.5数据获取操作

String getPath();
	//获取File对象存储路径信息
String getParent();
	//获取File对象存储路径的父目录
String getName();
	//获取File对象存储路径信息的文件或文件夹名
long length();
	//通过File对象调用,获取文件大削,如果是文件夹返回值为0L
long lastModified();
	//通过File对象调用,获取文件或者文件夹最后修改时间
String getAbsolutrPath();
	//获取指定文件或文件夹的绝对路径
File getAbsoluteFile();
	//获取指定文件或文件夹的绝对路径对应的File对象

1.6文件列表操作

public static File[] listRoot();
	//只有Windows有效,可以获取所有盘符信息
String[] list();
	//通过File对象调用,获取对应文件夹中所有子文件或者子文件夹的名称
File[] listFiles();
	//通过File对象调用,获取对应文件夹中所有子文件夹或者子文件夹的File对象

1.7文件过滤

/**
* 文件名过滤器接口
*/
interface FilenameFilter{
    /**
    * 文件名过滤器要求方法中参数指定文件夹File对象,第二个是文件名
    * @param dir File 对象,目标进行文件列表操作的文件夹 File 对象
    * @param name 指定文件夹下的子文件或者子文件夹名称
    */
    boolean accept(File dir,String name);
}

可以提供给

String[] list(FilenameFilter filter);

File[] listFiles(FilenameFilter filter);

IO流

2.1概述

输入输出是相对于具体参照物而言的

2.2 IO流分类

  • 流向划分

    • 输入流
    • 输出流
  • 处理数据单位

    • 字节流

      ​ 用于文件操作,上传或下载,适用于所有类型文件

      字节输入流、字节输出流

    • 字符流

      ​ 只能操作普通可视化文本文件,且收到编码集约束

      可分类为:

      ​ 字符输入流、字节输出流

2.3 文件操作-字节输入流

FileInputStream(String filePath);
	//根据指定的路径,创建对应的文件的字节码输入流对象
FileInputStream(File file);
	//根据指定的文件对象,创建对应的字节输入流对象
int read();
	//从文件读取一个字节数据返回,返回值类型为int类型,实际有效数据为byte
int read(byte[] buffer);
	//从文件中读取数据到byte类型的缓冲数组,返回值类型为byte类型的缓冲数组中的字节个数
int read(byte[] buffer,int offset,int length);
	//从文件中读取数据到byte缓冲数组中,要求从offset下标位置开始,到length计数结束,返回值是读取到数组中的字节个数

读到结尾,以上所有方法的返回值都是-1

2.4 文件操作-字节输出流

FileOutputStream(String filePath);
	//根据指定的文件路径,创建对应文件的文件操作字节输出流对象
FileOutputStream(File file);
	//根据指定的文件File对象,创建对应当前文件的文件操作字节输出流对象
FileOutputStream(String filePath,boolean append);
	//根据指定的文件路径,创建对应当前文件的文件操作字节输出流对象,append用于控制当前文件内容写入采取的是追加写还是删除写
FileOutputStream(File file,boolean append);
	//根据指定文件的File对象,创建对应当前文件的文件操作字节输出流对象,append用于控制当前文件内容写入采取的是追加写还是删除写
  • FileOutputStream文件操作字节输出流,对文件的内容写入默认采用删除写。开启追加写需要用append为true来约束
  • FileOutputStream有创建文件的能力,不存在则创建,【前提】路径合法,文件夹有操作权限

写入方法:

void write(int b);
	//写入一个字节数据到文件中
void write(byte[] buffer);
	//写入一个字节数组数据到文件中
void write(byte[] buffer,int offset,int length);
	//写入一个字节数组,从指定offset下标开始,写入length个字节数到文件中

2.5字节流拷贝文件思路

字节流可以处理任何文件

需求:复制一个MP4文件到另外一个目录下

流程:

  1. 明确原文件路径
  2. 明确目标文件路径
  3. 创建FileInputStream文件操作字节输入流对象,将文件内容读取到内存中
  4. 创建FileOutputStream文件操作字节输出流对象,将内存中的文件内容输出到目标路径下,如果对应文件不存在,自动创建。
  5. 关闭资源

2.6文件操作字符输入流

FileReader(String filepath);
	//根据指定的文件路径,创建对应文件的文件操作字符输入流对象
FileReader(File file);
	//根据指定的File对象,创建对应的文件操作字符输入流对象

读取操作方法
    int read();
	int read(char[] buffer);
	int read(char[] buffer,int offset,int length);

2.7文件操作字符输出流

FileWriter(String filePath);
	//根据指定文件的File对象,创建对应文件的文件操作字符输出流对象
FileWriter(File file);
	//根据指定文件的File对象,创建对应文件的文件操作字符输出流对象
FileWriter(String filepath,boolean append);
	//根据指定的文件路径,创建对应的文件操作字符输出流对象,append用于控制当前文件采取的是追加写还是删除写
FileWriter(File file,boolean append);
	//根据指定文件File对象,创建对应文件的文件操作字符输出流对象
  • FileWriter字符输出流默认采用删除写
  • FileWriter有文件创建的能力,【前提】路径合法,文件夹有操作权限

写入操作方法

void write(int ch);
void write(char[] buffer);
void write(char[] buffer,int offset,int length);
void write(Stirng str);
void write(String str,int offset,int length);

标签:文件,File,对象,int,文件夹,IO,字节
From: https://www.cnblogs.com/julys08/p/17210984.html

相关文章

  • anroid studio Dimens生成可适配的多个文件 进行多设备兼容(手机)
    1、Settings 2、InstallPluginfromDisk  3、选择ScreenMatch.jar:这个jar包在最新版的androidstudio上不兼容,这个测试版本androidstudio3.6  重启ID......
  • chrome导出导入har文件
    问题在特定的网络情况,需要分析网络请求一线复现问题,导出网络请求har发给二线分析强求解决har(httparchiveformat)http请求归档文件,用来保存http请求过程的文件保存h......
  • 15. 文件操作
    一、什么是文件  文件是指一组相关数据的有序集合。这个数据集合有一个名称,叫做文件名。所有的文件都通过流进行输入、输出操作。与文本流和二进制流对应,文本可以分为......
  • lvgl入门学习第五篇lv_conf.h文件
    lv_conf.h是一个用户级别的文件不同工程可以有不同的lv_conf.h1、lv_conf.h文件介绍包含10个板块,lv_conf.h可以再下图中位置找到,并打开。......
  • HUSTOJ后台文件上传文件大小限制修改
    1.首先根据提示,到Ubuntu系统平台相关目录下找到php.ini,修改相应变量值。2.正常情况下,设置后可以实现大文件上传。3.若依旧出现413RequestEntityTooLarge,则需要修改N......
  • HUSTOJ后台公告KindEditor编辑器中文件上传类型限制修改
    1.进入Ubuntu系统,/home/judge/src/web目录2.搜索找到KindEditor文件夹3.进入PHP文件夹,打开upload_json.php4.按照提示找到限制上传文件类型的代码,添加相应文件扩展名即......
  • iOS 给静态库.a添加x86_64架构支持
    三方提供的sdk只支持arm64的,这样我就没法用模拟器调试了,于是找到三方sdk供应商要到x86_64架构的支持,手动通过lipo的方式将这两个文件合并在一起1、查看当前文件支持的架......
  • Show_senior
    Show_senior目录Show_seniorDreamdateActor'slinesActorlistDreamdateActor'slinesActorlistroleactorHostLeonBroadcast_HostViviCeilFemale......
  • Linux操作系统file命令 – 识别文件类型
    前言file命令用来识别文件类型,也可用来辨别一些文件的编码格式。(是通过查看文件的头部信息来获取文件类型,而不是像Windows通过扩展名来确定文件类型的)语法file[参数]......
  • JSch - Java实现的SFTP(文件上传下载)
    JSch-SFTP文件上传下载目录JSch-SFTP文件上传下载1.JSch简介2.ChannelSftp常用ApiJSch支持三种文件传输模式文件上传put()方法文件下载get()方法3.SFTP上传......