IO、存储、硬盘、文件系统相关常识
1. IO (Input/Output):输入/输出,是指计算机系统与外部设备之间进行数据传输的过程。常见的IO设备包括键盘、鼠标、显示器、打印机、网络接口卡等。
2. 存储:计算机系统中用于保存数据和程序的设备或介质。常见的存储设备包括硬盘、固态硬盘、内存、U盘等。
3. 硬盘:一种存储设备,是计算机系统中最常用的存储介质之一。硬盘通常安装在计算机的机箱内部,用于保存操作系统、应用程序、用户文件等数据。
4. 文件系统:计算机中用于管理和组织文件和文件夹的一种机制。文件系统通常由操作系统提供,用于将文件和文件夹组织成树形结构,并提供文件的读写、复制、移动、删除等操作。常见的文件系统包括NTFS、FAT32、EXT4等。
File 类的用法和 InputStream, OutputStream 的用法
File 概述
属性
|
修饰符及类型 |
属性 |
说明 |
|
static String |
pathSeparator |
依赖于系统的路径分隔符,String 类型的表示 |
|
static char |
pathSeparator |
依赖于系统的路径分隔符,char 类型的表示 |
构造方法
|
签名 |
说明 |
|
File(File parent, String child) |
根据父目录 + 孩子文件路径,创建一个新的 File 实例 |
|
File(String pathname) |
根据文件路径创建一个新的 File 实例,路径可以是绝对路径或者相对路径 |
|
File(String parent, String child) |
根据父目录 + 孩子文件路径,创建一个新的 File 实例,父目录用路径表示 |
方法
|
修饰符及返回值类型 |
方法签名 |
说明 |
|
String |
getParent() |
返回 File 对象的父目录文件路径 |
|
String |
getName() |
返回 FIle 对象的纯文件名称 |
|
String |
getPath() |
返回 File 对象的文件路径 |
|
String |
getAbsolutePath() |
返回 File 对象的绝对路径 |
|
String |
getCanonicalPath() |
返回 File 对象的修饰过的绝对路径 |
|
boolean |
exists() |
判断 File 对象描述的文件是否真实存在 |
|
boolean |
isDirectory() |
判断 File 对象代表的文件是否是一个目录 |
|
boolean |
isFile() |
判断 File 对象代表的文件是否是一个普通文件 |
|
boolean |
createNewFile() |
根据 File 对象,自动创建一个空文件。成功创建后返回 true |
|
boolean |
delete() |
根据 File 对象,删除该文件。成功删除后返回 true |
|
void |
deleteOnExit() |
根据 File 对象,标注文件将被删除,删除动作会到 JVM 运行结束时才会进行 |
|
String[] |
list() |
返回 File 对象代表的目录下的所有文件名 |
|
File[] |
listFiles() |
返回 File 对象代表的目录下的所有文件,以 File 对象表示 |
|
boolean |
mkdir() |
创建 File 对象代表的目录 |
|
boolean |
mkdirs() |
创建 File 对象代表的目录,如果必要,会创建中间目录 |
|
boolean |
renameTo(File dest) |
进行文件改名,也可以视为我们平时的剪切、粘贴操作 |
|
boolean |
canRead() |
判断用户是否对文件有可读权限 |
|
boolean |
canWrite() |
判断用户是否对文件有可写权限 |
InputStream 概述
方法
|
修饰符及返回值类型 |
方法签名 |
说明 |
|
int |
read() |
读取一个字节的数据,返回 -1 代表已经完全读完了 |
|
int |
read(byte[] b) |
最多读取 b.length 字节的数据到 b 中,返回实际读到的数量;-1 代表以及读完了 |
|
int |
read(byte[] b, int off, int len) |
最多读取 len - off 字节的数据到 b 中,放在从 off 开始,返回实际读到的数量;-1 代表以及读完了 |
|
void |
close() |
关闭字节流 |
说明
InputStream 只是一个抽象类,要使用还需要具体的实现类。关于 InputStream 的实现类有很多,基本可以认为不同的输入设备都可以对应一个 InputStream 类,我们现在只关心从文件中读取,所以使用FileInputStream
FileInputStream 概述
构造方法
|
签名 |
说明 |
|
FileInputStream(File file) |
利用 File 构造文件输入流 |
|
FileInputStream(String name) |
利用文件路径构造文件输入流 |
OutputStream 概述
方法
|
修饰符及返回值类型 |
方法签名 |
说明 |
|
void |
write(int b) |
写入要给字节的数据 |
|
void |
write(byte[] b) |
将 b 这个字符数组中的数据全部写入 os 中 |
|
int |
write(byte[] b, int off, int len) |
将 b 这个字符数组中从 off 开始的数据写入 os 中,一共写 len 个 |
|
void |
close() |
关闭字节流 |
|
void |
flush() |
重要:我们知道 I/O 的速度是很慢的,所以,大多的 OutputStream 为了减少设备操作的次数,在写数据的时候都会将数据先暂时写入内存的一个指定区域里,直到该区域满了或者其他指定条件时才真正将数据写入设备中,这个区域一般称为缓冲区。但造成一个结果,就是我们写的数据,很可能会遗留一部分在缓冲区中。需要在最后或者合适的位置, 调用 flush(刷新)操作,将数据刷到设备中。 |
说明
OutputStream 同样只是一个抽象类,要使用还需要具体的实现类。我们现在还是只关心写入文件中, 所以使用 FileOutputStream
本文介绍了IO输入/输出的概念和常见设备,存储设备如硬盘的作用,以及文件系统的基本功能。重点讲述了Java中的File类,包括其属性、构造方法和常用方法,如判断文件存在、创建新文件、删除文件等。此外,还讨论了InputStream和OutputStream抽象类及其具体实现类FileInputStream和FileOutputStream在文件读写中的应用。
686

被折叠的 条评论
为什么被折叠?



