面向对象开发期末复习概述(六)

面向对象开发期末复习概述(六)

第10章 输入/输出流
什么是输入输出
输入输出过程:
读取 写入
打开输入流 打开输出流
如流中还有信息,则读取数据 如流中还有更多信息,则写入数据
关闭输入流 关闭输出流
File类:将文件系统中的文件和文件夹封装成了对象。提供了更多的属性和行为,可以对这些文件和文件夹进行操作。这些是流对象办不到的,因为流只操作数据。File类位于java.io包中。
1.File类的构造方法

2.File类的常用方法
(1)boolean createNewFile():在指定目录下创建文件,如果该文件已存在,则不创建。而对操作文件的输出流而言,输出流对象已建立,就会创建文件,如果文件已存在,会覆盖。除非续写。
(2)boolean mkdir():创建此抽象路径名指定的目录。
(3)long length():获取文件大小。
(4)String getName():返回由此抽象路径名表示的文件或目录的名称。
(5)String getPath():将此抽象路径名转换为一个路径名字符串。
(6)String getAbsolutePath():返回此抽象路径名的绝对路径名字符串。
(7)boolean exists():判断文件或者文件夹是否存在。
(8)boolean isDirectory():测试此抽象路径名表示的文件是否是一个目录。
(9)boolean isFile():测试此抽象路径名表示的文件是否是一个标准文件。
(10)String[] list():列出指定目录下的当前的文件和文件夹的名称。
流
1.流的概念
流:可以理解数据的流动,就是一个数据流。
2.流的分类
(1)按照流向划分:输入流(只能从中读取信息,而不能从中写入信息);输出流(只能从
中写入数据,而不能从中读取数据)。输入输出流的基类:
输出流:OutputStream 和Writer 作为基类
输入流:InputStream 和Reader 作为基类
(2)按照处理数据单元划分:
字节流(用于二进制数据)(字节输入流InputStream 基类,字节输出流OutputStream 基类)
字符流(用于文本)(字符输入流Reader,字符输出流Writer)
3.文件输入输出相关类
文件字节输入流类:FileInputStream 文件字节输出流类:FileOutputStream
文件字符输入流类:FileReader 文件字符输出流类:FileWrite
(1) FileInputStream 的构造方法
方法 说明
FileInputStream(File file) File指定文件数据源
FileInputStream(String name) Name指定文件数据源,包含路径信息
(2)FileOutputStream 的构造方法
方法 说明
FileOutputStream(File file) file指定文件目标数据源
FileOutputStream(String name) name指定文件目标数据源,包含路径信息
FileOutputStream(Stringname,boolen append) apppend若true,则在文件末尾添加数据
注意:创建FileInputStream实例对象时,指定的文件应当是存在和可读的,若指定的文件不存在,则会抛出FileNotFoundException异常。
(3)FileInputStream 的常用方法
读取
数据 int read() 读取一个字节,形成0~255之间的一个整数返回,读取不成功返回-1
int read(byte[] buffer) 将读入的数据放在字节数组buffer中,并返回读取的字节数,读取不成功返回-1
int read(byte b[],int offset, int length) 读取length个字节,放到以下标off开始数组b中,并返回实际读取的字节数,读取不成功返回-1
int available() 返回流中可用的字节数
关闭流 void close() 操作完毕后必须关闭流
(4)FileOutputStream 的常用方法
输出
数据 void write(int b) 往流中写一个字节,该字节为b的低8位
void write(byte[] b) 往流中写一个字节数组b
void write(byte[] b, int off, int len) 将数组b中从off指定的位置开始、长度为len的数据写入到输出流
关闭流 void close() 关闭流、释放内存资源
(5)FileReader类的构造方法
FileReader(File f) 创建一个从文件f中读取字符数据的输入流对象
FileReader(String Filename) 创建一个从filename指定的文件中读取字符数据的输入流对象
(6)FileWriter类的构造方法
FileWriter(File f) 创建一个向文件f中写入字符数据的输出流对象
FileWriter(String Filename) 创建一个向filename指定的文件中写入符数据的输出流对象
FileWriter(String filename,boolean append) 创建一个向filename指定的文件中写入数据的字符输出流对象,若append为true,则在文件末尾追加数据

4.缓冲区流类
BufferedReader:从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
BufferedWriter:将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。BufferedWriter(将流和缓冲区结合):是给字符输出流提高效率用的,那就意味着,缓冲区对象建立时,必须要先有流对象。
(1)BuferedReader类的构造方法

读的常用方法与前边的输入流类相似。
还有一个读取的常用方法:readLine():读取一行字符串
(2)BuferedWriter类的构造方法

写的常用方法与前边的输出流类相似

还有一个写入的常用方法:newLine():换行
应用举例:
BufferedWriter:
FileWriter fw = new FileWriter(“bufdemo.txt”);
BufferedWriter bufw = new BufferedWriter(fw);//让缓冲区和指定流相关联。
for(int x=0; x<4; x++){
bufw.write(x+“abc”);
bufw.newLine(); //写入一个换行符,这个换行符可以依据平台的不同写入不同的换行符。
bufw.flush();//对缓冲区进行刷新,可以让数据到目的地中。
}
bufw.close();//关闭缓冲区,其实就是在关闭具体的流。

BufferedReader:
FileReader fr = new FileReader(“bufdemo.txt”);
BufferedReader bufr = new BufferedReader(fr);
String line = null;
while((line=bufr.readLine())!=null){ //readLine方法返回的时候是不带换行符的。
System.out.println(line);
}
bufr.close();
注意:有关输入输出流的读写等操作时均有可能会抛出IOException,所以有关输入输出的操作语句一般均放在try……catch……块中。
问题:
File类的使用
流分成哪两类?
按照单位划分分成字节流和字符流。
按输入输出分成输入流和输出流
和文件流相关的有那几个类?
FileInputStream文件输入字节流
FileOutputStream文件输出字节流
FileReader文件输入字符流
FileWriter文件输出字符流
文件流操作应该用字节流还是字符流?
如果是纯文本文件应该用字符流
如果是二进制文件应该用字节流
文件操作用哪个类?
用java.io.File类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Taciturn knight

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值