2021-05-16

一,什么是IO呢
1.输入流:把数据从其他设备上读取到内存中的流。
2.输出流:把数据从内存写到其他设备上的流。

3.格局数据的类型分为:字节流和字符流
3.1字节流:以字节为单位,读写数据的流。
3.2字符流:以字符为单位,读写数据的流。

4.字符流的顶级父类:InputStream(输入流)和OutputStream(输出流)。

** 二,字节流**

1.字节输出流
java.io.OutputStream抽象类是表示字节输出流的所有类的超类,将指定的字节信息写出到目的地。
1.1基本共性功能方法
public void close()
public void write(byte[] b)
public void write(byte[] b, int off, int len)
public abstract void write(int b)

1.2 FileOutputStream类是文件输出流,用于将数据写到文件。
其构造方法为

// FileOutputStream(File file)
//FileOutputStream(String name)

File file new File(".....")
FileOutputStream fos = new FileOutputStream(file);

写数据有三种方式:

  1. 写出字节 write(int b)
  2. 写出字节数组 write(byte[] b)
  3. 写出指定长度字节数组:write(byte[] b, int off, int len)

1.3数据追加续写

public FileOutputStream(File file, boolean append)//创建文件输出流以写入由指定的 File对象表示的 文件。
public FileOutputStream(String name, boolean append//: 创建文件输出流以指定的名称写入文件

1.4.写出换行
Windows系统里,换行符号是 \r\n
系统中的换行: Windows系统里,每行结尾是 回车+换行 ,即 \r\n ;
Unix系统里,每行结尾只有 换行 ,即 \n ;
Mac系统里,每行结尾是 回车 ,即 \r 。从 Mac OS X开始与Linux统一。

三,字节输入流
1.InputStream抽象类是表示字节输入流的所有类的超类,可以读取字节信息到内存中。
2.其基本共性功能方法:

1.public void close()
2.public abstract int read()
3.public int read(byte[] b)

3.FileInputStream 类是文件输入流,从文件中读取字节
其两个构造方法为:

FileInputStream(File file)
FileInputStream(String name)

4.读取数据

  1. 读取字节 read 方法
  2. 使用字节数组读取read(byte[] b)

字符流
#字符输入流
1.Reader抽象类是表示用于读取字符流的所有类的超类,可以读取字符信息到内存中。
其有几种基本共性功能的办法。

//常用的方法
1.close()
2.public int read()//从输入流读取一个字符
3.read(char[] cbuf)//从输入流中读取一些字符,并将存储到字符数组cbuf中

2.FileReader类是读取字符文件的便利类。构造时使用系统默认的字符编码和默认字节缓冲区。
注意:字节缓冲区:一个字节数组,用来临时存储字节数据。

//FileReader类的构造方法
FileReader(File file)
FileReader(String fileName)

#字符输出流
Writer抽象类是表示用于写出字符流的所有类的超类,将指定的字符信息写出到目的地。
其有几种基本共性功能的办法。

1.write(int c)//写入单个字符
2.write(char[] cbuf)//写入字符数组
2.abstract void write(char[],int off,int len)//写入字符数组的某一部分,off字符串开始索引,len写的字符个数。
4.write(String str)
5.write(String str, int off, int len)
6. flush() 刷新该流的缓冲。

2.FileWriter类是Write的子类。
其构造方法有两种。

1.FileWriter(File file)
2.FileWriter(String fileName)

3.写出字符: write(int b) 方法
4.写出字符数组 : write(char[] cbuf) 和 write(char[] cbuf, int off, int len)
5.写出字符串: write(String str) 和 write(String str, int off, int len)

File类
1.File类是文件和目录路径的抽象表示,主要用于文件和目录的创建,查找和删除等操作。
其构造方法有3种。

1.File(String pathname)
2.File(String parent, String child)
3.File(File parent, String child)//从父抽象路径名和子路径名字符串创建新的 File实例
//上面三种都可以创建文件对象,常用第一种方法。

2.文件常用的方法。

1. String getAbsolutePath() :返回此File的绝对路径名字符串。
2. String getPath() :将此File转换为路径名字符串。
3. String getName() :返回由此File表示的文件或目录的名称。
4. long length() :返回由此File表示的文件的长度。

3.绝对路径和相对路径
绝对路径:从盘符开始的路径,这是一个完整的路径。
相对路径:相对于项目目录的路径,这是一个便捷的路径,开发中经常使用。

exists()//file表示文件或目录是否实际存在
isDirectory()//是否为目录
isFile()//是否为文件

3.创建删除功能的方法

createNewFile()//创建一个新的文件
delete()//删除由此file表示的文件或目录
mkdir()//创建由此File表示的目录。
mkdirs()//创建由此File表示的目录,包括任何必需但不存在的父目录,就是可以创建多级目录

4目录的遍历

String[] list()//返回一个String数组,表示该File目录中的所有子文件或目录
File[] listFiles()//返回一个File数组,表示该File目录中的所有的子文件或目录

递归
1.递归指的是在当前方法内调用自己的方法的现象。
2.递归的分类:直接递归和间接递归(可以a方法调用b方法,b方法调用c方法,c方法调用a方法)

注意事项:
递归次数不能太多,还有一定条件限定,否则会发生栈内存溢出。

3.应用:递归打印多级目录

缓冲流
#字节缓冲流
#缓冲流是一种高效的流
1.字节缓冲流:BufferedInputStream和BufferedOutputStream
2.字符缓冲流:BufferedReader和BufferedWriter
其构造方法为

1.public BufferedInputStream(InputStream in)//创建一个新的缓冲输入流。
2.public BufferedOutputStream(OutputStream out)//创建一个新的缓冲输出流。

#字符缓冲流
其构造方法为

1.public BufferedReader(Reader in)//创建一个
新的缓冲输入流。
2.public BufferedWriter(Writer out)//创建一个新的缓冲输出流。

其特有的方法:

BuferedReader:public String readLine():读一行文字。
BufferedWriter:public void newLine():写一行行分隔符,由系统属性定义符号。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值