File类型、IO概述

一、File类型

(一)概述

1.File类型:用于表示一个文件或者文件夹的抽象路径

2.路径:用于描述文件或者文件夹所在所在位置的字符串

3.路径分类

(1)绝对路径:从根目录开始的路径

(2)相对路径:相对于某个路径而言的路径

(二)构造方法

1.File(String pathname):将一个字符串表示的路径封装为File对象

2.File(File parent,String child):将父级路径和子级路径封装成一个File对象,对象中的路径是

父级路径+子级路径 

3.File(String parent,String child):将父级路径和子级路径封装成一个File对象,对象中的路径

是父级路径+子级路径

(三)File类型的创建方法

1.createNewFile():当且仅当File对象表示的文件路径的路径不存在时,创建一个新的空文件,

如果创建成功就返回true

2.mkdir():只能创建单个目录,如果父级不存在,创建失败

3.mkdirs():可以创建嵌套目录,如果一次创建多层目录,父级目录不存在时,直接创建

(四)删除方法

1.delete():删除路径指定的文件或者文件夹

2.注意

(1)使用该方法删除的文件夹只能是空文件夹,无法删除非空文件夹

(2)使用该方法删除的内容不走回收站

(五)重命名方法

1.renameTo(File dest):将调用者对象表示的文件使用参数对象表示的新名称重新命名

2.注意

(1)在同路径下,该方法仅仅是重命名

(2)在不同路径下,该方法是剪切并且重命名

(六)判断功能

1.exists():测试调用者表示的抽象路径是否存在

2.isFile():判断调用者抽象路径表示的文件是不是一个标准文件

3.isDirectory():测试调用者对象表示的路径是不是一个文件夹

(七)获取功能

1.getAbsoluteFile():返回当前File的绝对路径的File格式

2.getAbsolutePath():返回当前File的绝对路径的字符串格式

3.getName():获取当前File对象路径表示的文件名或者文件夹的名称

4.length():获取File对象指代的文件的长度(所占用字节数),如果对象路径指代文件夹,返

回值不确定

5.list():将File对象表示的文件夹下的所有内容的名字装进String数组中,只是名字,不是完成

路径

6.getPath():将File对象表示的路径转为字符串表示形式

(八)File与递归

1.listFiles():将File对象表示的文件夹下的所有内容的路径装进File数组中

二、IO概述

(一)简介

1.IO:是input和output两个单词的缩写,输入和输出

2.内存:用于程序运行的区域,数据断电丢失

3.磁盘:用于静态存储数据的地方,数据断电不丢失

4.所有的输入输出,如果没有特殊的设定,都是站在计算机内存的角度去看待,一切进内存的操作

都叫做输入,一切出内存的操作都叫做输出

5.java中操作设备之间数据传输的对象,都是IO对象,这些对象所属的类型都在IO包中

(二)IO分类

1.按照功能分

(1)字节流:可以直接操作字节的流对象

(2)字符流:可以直接操作字符的流对象

2.按照流向分

(1)输入流:其他设备到内存

(2)输出流:内存到其他设备

3.IO流主要的体系结构

(1)字节流

①字节输入流

②字节输出流

(2)字符流

①字符输入流

②字符输出流

(三)IO程序的书写

1.IO流对象使用完毕之后一定要记得关闭资源

2.所有IO相关的内容都在IO包底下

3.IO在操作过程中,记得处理异常

三、字节流

(一)概述

1.可以直接操作字节的流对象

2.字节输入流的顶层抽象父类:InputStream

3.字节输出流的顶层抽象父类:OutputStream

4.根据交互设备的不同,具有不同的实现类

(二)InputStream

1.字节输入流的顶层抽象父类

2.常用方法

(1)close():关闭资源

(2)read():从当前字节流中读取一个字节信息并且返回,到达文件末尾就返回-1

注意:①该方法返回的是字节信息本身

②只要是从文件中读取到的内容,一定是【0,255】范围的数据,只要返回-1,肯定不是读取到的

数据,而是到达文件末尾

(3)read(byte【】arr):从输入流中读取一定数量的字节,并将其存储在缓冲器数据arr中

注意:①该方法返回的是字节信息的个数,而非字节信息本身

②只要到达文件末尾就返回-1

(4)available():返回流中剩余的字节个数

(三)FileInputStream

1.是InputStream的子实现类,用于和磁盘上的文件进行交互

2.不仅可以一次读取一个字节信息,还能够一次读取多个字节信息,不仅能够操作纯文本,也可以操作图片、视频、音频等等

3.构造方法

(1)FileInputStream(File file):将一个文件的路径封装为一个File对象,之后封装在

FileInputStream中,创建一个可以用来读取这个文件的流对象

(2)FileInputStream(String name):将一个字符串表示形式的文件路径封装在FileInputStream

中,创建一个可以用来读取这个文件的流对象

(四)OutputStream

1.字节输出流的顶层抽象父类

2.常用方法:

(1)write(int b):将一个字节信息输出到指定设备中

(2)write(byte【】b):将一个字节数组中的所有字节信息,输出到指定设备中

(3)write(byte【】b,int off,int len):将一个字节数组中的一部分字节信息,输出到指定设

备中

(五)FileOutputStream

1.是OutputStream的子实现类,用于和磁盘上的文件进行交互

2.构造方法

(1)FileOutputStream(File file):将file对象描述的文件的路径封装在FileOutputStream中  

(2)FileOutputStream(String name):将字符串描述的文件的路径封装在FileOutputStream中

3、注意

(1)如果目标文件不存在,直接创建文件,将字节信息写出到文件中

(2)如果目标文件存在,直接覆盖其内容

(3)使用流对象将字节信息写出到磁盘的过程,既不存在编码,也不存在解码,只是字节信息的

单纯搬运,但是当我们打开存在字节信息的文件时,使用的是记事本打开的,所以会按照文本的方

式进行解析字节信息。事实上,在我们使用记事本打开一个文件的时候,存在两个步骤:①先将磁

盘上的字节信息读取到内存中;②再通过编码表进行解码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值