File 类

File 类的生命周期

  1. 使用字符串路径创建 File 对象:这时只是一个路径,文件不一定存在
    new File(String pathName)
  2. 创建文件
    createNewFiles()
  3. 删除文件
    delete()

File 类创建 File 对象要注意什么

File封装的对象仅仅是一个路径名,这个路径可以是存在的,也可以是不存在的

File 对象创建后可以做什么

Java File对象使用过后要关闭吗 java file对象释放_servlet

File 对象创建文件需要注意什么

mkdir()只能创建一级文件夹

mkdirs() 可以创建多级文件夹

Java File对象使用过后要关闭吗 java file对象释放_servlet_02

File 对象如何查看所有文件

Java File对象使用过后要关闭吗 java file对象释放_字节数组_03


listFiles方法:

当文件不存在时或者代表文件时,返回null

当文件对象代表一个空文件夹时,返回一个长度为0的数组

当文件对象是一个有内容的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回

当文件对象是一个有隐藏文件的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回,包含隐藏文件

当没有权限访问该文件夹时,返回null

File 对象删除文件要注意什么

delete() 只能删除文件或空文件夹,删除后也不会存放在回收站

最佳实践:如何删除文件夹

①:File默认不可以删除非空文件夹
②:我们需要遍历文件夹,先删除里面的内容,再删除自己

字符集

有哪些常用的字符集

  • ASCII字符集
  • GBK字符集
  • Unicode(UTF-8)字符集

三个字符集之间有什么不同

  1. ASCII使用1个字节存储一个字符,一个字节是8位,总共可以表示128个字符信息
  2. GBK编码中一个中文字符一般以两个字节的形式存储。同时兼容 ASCII 编码
  3. UTF-8编码后一个中文一般以三个字节的形式存储,同时也要兼容ASCII编码表

最佳实践:字符集选择

unicode字符集

为什么会出现乱码

对相同文本,编码存储和解码展示的过程中,使用的字符集不同造成的
比如,写入时,使用 UTF-8 编码,一个汉字三个字节,读取时使用 GBK 编码,每次将两个字节转换为一个汉字,这就导致读取的可能只有某个汉字的一半。

如何在Java中将字符串转换为字节,并且按照要求的字符集进行转换(编码)

Java File对象使用过后要关闭吗 java file对象释放_数据结构_04

如何在Java中将字节转换为字符串,并且按照要求的字符集进行转换(解码)

Java File对象使用过后要关闭吗 java file对象释放_servlet_05

IO流

IO 流体系

Java File对象使用过后要关闭吗 java file对象释放_字节数组_06

所谓的输入流、输出流,是以什么为基准说的

内存
输入就是,从磁盘或网络上,将数据传输到内存
输出就是,从内存,将数据传输到磁盘或网络

字节流和字符流有什么差别

字节流可以操作所有类型的文件,包括音频视频图片等
字符流只能操作文本文件,包括java文件,txt文件等

字节流

如何创建输入字节流

Java File对象使用过后要关闭吗 java file对象释放_servlet_07

如何读取

Java File对象使用过后要关闭吗 java file对象释放_java_08

每次读取一个字节有什么问题,如何解决

性能较慢
读取中文字符输出无法避免乱码问题

可以每次读取一个字节数组,加快速度

每次读取一个字节数组有什么问题,如何解决

读取中文字符输出无法避免乱码问题

定义一个与文件一样大的字节数组,一次性读取完文件的全部字节

Java File对象使用过后要关闭吗 java file对象释放_Java File对象使用过后要关闭吗_09

把文件数据全部读取到一个字节数组可以避免乱码,有什么问题

如果文件过大,字节数组可能引起内存溢出

如何创建输出字节流

Java File对象使用过后要关闭吗 java file对象释放_java_10

如何输出字节

Java File对象使用过后要关闭吗 java file对象释放_Java File对象使用过后要关闭吗_11

如何输出特殊字符


os.write(“\r\n”.getBytes())

如何让写出去的数据能够生效

刷新流或关闭流

Java File对象使用过后要关闭吗 java file对象释放_Java File对象使用过后要关闭吗_12

资源释放

什么是资源

Java File对象使用过后要关闭吗 java file对象释放_java_13

try catch 和 try resources 有什么不同

try catch finnally 可以在 finnally 中 释放资源,然而可以使用 try resources 简化代码

Java File对象使用过后要关闭吗 java file对象释放_java_14