1.File文件类
1.文件可以认为是记录和数据的集合
2.在java中提供了一个专门对文件进行操作的类File
3.File文件类在java中是文件和目录路径名的抽象表示,也就是仅仅代表一个路径。
4.File类中有一些获取文件属性的方法和对文件进行操作的方法
5.在Windos中文件路径分隔符是 \,在Linux中是/
6.对于IDEA来说当前默认路径是当前项目的根路径
1.1File类的常用构造方法
构造方法名 | 备注 |
---|---|
File(String pathname) | pathname文件/文件夹路径 |
1.2File类的常用方法
方法名 | 作用 |
---|---|
boolean exists() | 判断文件/文件夹是否存在 |
boolean delete() | 删除文件或文件夹 |
boolean mkdirs() | 创建多重文件夹 |
boolean mkdir() | 创建文件夹 |
boolean createNewFile() | 创建文件 |
isFile() | 判断该文件/文件夹是不是文件 |
boolean isDirectory() | 判断该文件/文件夹是不是文件夹 |
isHidden() | 判断该文件/文件夹是否隐藏 |
String getPath() | 获取文件/文件夹的路径 |
File getAbsoluteFile() | 获取文件/文件夹的绝对路径(返回值:File) |
String getName() | 获得文件/文件夹名字 |
String getParent() | 获取当前文件/文件夹的父路径 |
File getParentFile() | 获取文件/文件夹的父文件/文件夹(返回值:File) |
long lastModified() | 获取文件/文件夹最后一次修改时间 |
long length() | 获取文件大小;获取文件夹里面的文件个数 |
String[] list() | 获取文件夹的文件名字以String[]返回 |
File[] listFiles() | 获取文件夹的文件名字以File[]返回 |
2.IO流是什么
IO指的是Input/Output,IO流:输入输出流。 统称为数据流。(IO Stream)
在Java程序中,对于数据的输入 / 输出操作以流的方式进行;流是从起源到接收的有序数据。JDK提供了各种各样的流类,用以获取不同种类的数据;
3.IO流的分类
按流向分:
◦ 输入流:程序可以从中读取数据的流
◦ 输出流:程序能向其中写入数据的流
按数据传输单位分:
◦ 字节流:以字节为单位传输数据的流
◦ 字符流:以字符为单位传输数据的流
按功能分:
◦ 节点流:用于直接操作目标设备的流
◦ 处理流:是对一个已存在的流的连接和封装,通过对数据的处理为程序提供更强大、灵活的读写功能
4.IO流的四大家族首领
-
字节流
-
java.io.InputStream 字节输入流
-
java.io.OutputStream 字节输出流
-
字符流
-
java.io.Reader 字符输入流
-
java.io.Writer 字符输出流
注意:
四大家族的首领都是抽象类。(abstract class) 所有的流都实现了: java.io.Closeable接口,都是可关闭的,都有 close() 方法。 流是一个管道,这个是内存和硬盘之间的通道,用完之后一定要关闭,不然会耗费(占用)很多资源。养成好习惯,用完流一定要关闭。 所有的 输出流 都实现了: java.io.Flushable接口,都是可刷新的,都有 flush() 方法。 养成一个好习惯,输出流在最终输出之后,一定要记得flush()刷新一下。这个刷新表示将通道/管道当中剩余未输出的数据强行输出完(清空管道!)刷新的作用就是清空管道。 ps:如果没有flush()可能会导致丢失数据。
在java中只要“类名”以 Stream 结尾的都是字节流。以“ Reader/Writer ”结尾的都是字符流。
5.要掌握的流
1.文件专属
-
java.io.FileInputStream(掌握)
-
java.io.FileOutputStream(掌握)
-
java.io.FileReader
-
java.io.FileWriter
2.转换流
-
java.io.InputStreamReader
-
java.io.OutputStreamWriter
3.缓冲流
-
java.io.BufferedReader
-
java.io.BufferedWriter
-
java.io.BufferedInputStream
-
java.io.BufferedOutputStream
4.数据流
-
java.io.DataInputStream
-
java.io.DataOutputStream
5.标准输出流(打印流)
-
java.io.PrintWriter
-
java.io.PrintStream(掌握)
6.对象序列化流
-
java.io.ObjectInputStream(掌握)
-
java.io.ObjectOutputStream(掌握)
6.常用流构造方法及其常用方法
7.缓冲流及其原理
一、概述
缓冲流,也叫高效流,它可以对那些基本的字节字符流进行增强,达到提高数据的读写能力。
二、缓冲流原理
创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。
注意:
-
缓冲区不是越大越好的,因为缓冲区占用的是内存,缓冲区过大就会出现内存空间占用严重。
-
一般默认的缓冲区为 8M
三、缓冲流分类
因为是对4个基本的FileXxx
流的增强,所以也是4个流,按照数据类型分类:
-
字节缓冲流:
BufferedInputStream
,BufferedOutputStream
-
字符缓冲流:
BufferedReader
,BufferedWriter
-
原文链接:缓冲流详解-CSDN博客