IO流

File---》要是对文件和目录的抽象表示;对于File而言,封装的并不是真正的文件,封装的仅仅是一个路径名,磁盘文件本身可以存在,也可以不存在;文件的内容不能用File读取,而是通过流来读取,File对象可以作为流的来源地和目的地。

File类的常用构造方法

构造方法方法说明
File(String pathname) 将路径字符串抽象为File实例,路径字符串可以是相对路径,也可以为绝对路径
File(String parent, String child) 从父路径名和子路径名来构建File实例
File(File parent, String child) 根据父File实例和子路径名来构建File实例

路径分隔符和换行符

路径分隔符

  1. windows的路径分隔符: \
  2. linux的路径分隔符: /

换行符

  1. windows的换行符: \r\n
  2. linux的换行符  \n

File的常用方法

方法名方法说明
boolean createNewFile() throws IOException 当该名称的文件不存在时,创建一个由该抽象路径名的空文件并返回true,当文件存在时,返回false
boolean mkdir() 创建由此抽象路径名命名的目录
boolean mkdirs() 创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录。级联创建目录
boolean delete() 删除由此抽象路径名表示的文件或目录

文件检测

方法名方法说明
boolean isDirectory() 判断是否是目录
boolean isFile() 判断是否是文件
boolean exists() 判断文件或目录是否存在
boolean canWrite() 文件是否可写
boolean canRead() 文件是否可读
boolean canExecute() 文件是否可执行
long lastModified() 返回文件的上次修改时间

文件获取

方法名方法说明
String getAbsolutePath() 返回File对象的绝对路径字符串
String getPath() 将此抽象路径名转换为路径名字符串
String getName() 返回文件或目录的名称
long length() 返回由此File表示的文件的字节数
String[] list() 返回目录中的文件和目录的名称字符串数组
File[] listFiles() 返回目录中的文件和目录的File对象数组

IO流:

IO流主要是读取、传输、写入数据内容的。

I: input,O:output

这里的主体说的都是程序(即内存),从外部设备中读取数据到程序中 即为输入流,从程序中写出到外部程序中即为输出流。

 

IO的分类

  • 本地IO和网络IO

    本地IO主要是操作本地文件,例如在windows上复制粘贴操作文件,都可以使用java的io来操作

    网络IO主要是通过网络发送数据,或者通过网络上传、下载文件。

  • 按流向分,输入流和输出流

  • 按数据类型分:字节流和字符流

  • 按功能分:节点流和处理流

    • 程序直接操作目标设备的类称为节点流
    • 对节点流进行装饰,功能、性能进行增强,称为处理流

字节流

InputStream是字节输入流的顶层抽象

方法名方法说明
int read() throws IOException; 每次读取一个字节的数据,提升为int类型,读取到文件末尾时返回 -1
int read(byte b[])throws IOException 每次读取到字节数组中,返回读取到的有效字节个数,读取到末尾时返回 -1(常用)
int read(byte b[], int off, int len) 每次读取到字节数组中,从偏移量off开始,长度为len,返回读取到的有效字节个数,读取到末尾时返回 -1

OutputStream是字节输出流的顶层抽象

方法名方法说明
void write(int b) throws IOException; 将int值写入到输出流中
void write(byte[] b) throws IOException; 将字节数组写入到输出流中
void write(byte b[], int off, int len) throws IOException 将字节数组从偏移量off开始,写入len个长度到输出流中
void flush() throws IOException 刷新输出流并强制缓冲的字节被写出

字符流:

Reader用于读取文本字符

方法名方法说明
int read() throws IOException 从输入流中读取一个字符,读到文件末尾时返回-1
int read(char cbuf[]) throws IOException 从输入流中读取字符到char数组中

Writer用于写出文本字符

方法名方法说明
void write(int c) throws IOException 写入单个字符到输出流中
void write(char[] cbuf) throws IOException 写入字符数组到输出流中
void write(char[] cbuf, int off, int len)  throws IOException 写入字符数组的一部分,偏移量off开始,长度为len到输出流中
void write(String str) throws IOException 直接写入字符串到输出流中(常用)
void write(String str, int off, int len) throws IOException 写入字符串的一部分,偏移量off开始,长度为len
Writer append(char c) throws IOException 追加字符到输出流中
原文地址:https://www.cnblogs.com/KL2016/p/14647267.html