第十五章总结

一.输入/输出流

1.输入流

InputStrema类是字节输入流的抽象类,它是所有字节输入流的父类。

该类中所有方法遇到错误都会引发IOException异常。

read()方法:从输入流中读取数据的下一个字节。返回0~255的int字节值。如果因为已经到达流末尾而没有可用的字节,则返回值为-1.

read(byte[] b):从输入流中读入一定长度的字节,并以整数的形式返回字节数。

mark(int readlimit)方法:在输入流的当前位置放置一个标记,readlimit参数告知此输入流在标记位置失效之前允许读取的字节数。

reset()方法:将输入指针返回到当前所做的标记处。

skip(long n)方法:跳过输入流上的n个字节并返回实际跳过的字节数。

markSupported()方法:如果当前流支持mark()/reset()操作就返回true().

close方法:关闭此输入流并释放与该流关联的所有系统资源。

2.输入流

OutputStream类是字节输出流的抽象类,此抽象类是表示输出字节流所有类的超类。

OutputStream类中的所有方法均返回void,在遇到错误时会引发IOException异常。

write(int b)方法:将指定的字节写入此输出流。

write(byte[] b)方法:将b个字节从指定的byte数组写入此输出流。

write(byte[] b,int off,int len)方法:将指定byte数组中从偏移量off开始的len个字节写入此输出流。

flush()方法:彻底完成输出并清空缓存区。

close()方法:关闭输出流。

二.File类

1.文件的创建与删除

(1)File(String pathname)

该构造方法通过将给定的路径名字符串转化为抽象路径名来创建一个新File实例。语法:

new File(String pathname)

其中,pathname代表路径名称(包含文件夹)

(2)File(String parent,String child)

该构造方法根据定义的父路径和子路径字符串(包含文件名)创建一个新的File对象。语法:

new File(String parent,String child)

parent:父路径字符串。

child:子路径字符串。

(3)File(File f,String child)

该构造方法根据 f 抽象路径名和child路径名字符串创建一个新的File实例。语法:

new File(File f,String child)

f:父路径对象。

child:子路径字符串。

【例15.1】在D盘创建文本文件

代码:

结果:

若D盘下没有word.txt文件,则会创建该文件并输出如下内容:

若D盘下有word.txt文件,则会删除该文件并输出如下内容:

2.获取文件信息

【例15.2】读取文本文件的名称、长度和隐藏属性

代码:

结果:

file.listFiles() 获取该文件夹下所有文件(含文件夹)

file.isDirectory() 判断该文件是否是文件夹

练习:获取D盘中的一个文件夹里内容

代码:

结果:

三.文件输入/输出流

1.FileInputStream与FileOutputStream

FileInputStream类常用的构造方法:

FileInputStream(String name)

FileInputStream(File file)

第一个构造方法使用给定的文件名name创建一个FileInputStream对象,第二个构造方法使用File对象创建FileInputStream对象。

【例15.3】向文本文件中写入内容,再读取出来

代码:

结果:

2.FileReader和FileWriter类

FileReader类和FileWriter类对应了FileInputStream类和FileOutputStream类。FileReader类顺序地读取文件,只要不关闭流,每次调用read()方法就顺序地读取源中其余内容,直到源的末尾或流被关闭。

【例15.4】使用字符流读写文本文件

代码:

结果:

四.带缓存的输入/输出流

1.BuffenedInputStream与BufferedOutputStream类

BuffenedInputStream类可以对所有InputStream类进行带缓存区的包装以达到性能的优化。

BuffenedInputStream类的两个构造方法:

BuffenedInputStream(InputStream in)

BuffenedInputStream(InputStream in,int size)

BufferedOutputStream类也有两个构造方法:

BufferedOutputStream(OutputStream in)

BufferedOutputStream(OutputStream in,int size)

2.BufferedReader与BufferedWriter类

BufferedReader类常用的方法:

read()方法:读取单个字符

readLine()方法:读取一个文本行,并将其返回为字符串。若无数据可读,则返回null

BufferedWriter类中的方法都返回void,常用的方法:

write(String s,int off,int len)方法:写入字符串的某一部分

flush()方法:刷新该流的缓存

newLine()方法:写入一个行分隔符

【例15.5】使用缓冲流读写文本文件

代码:

结果:

五.数据输入/输出流

DataInputStream类与DataOutputStream类的构造方法:

DataInputStream(InputStream in):使用指定的基础InputStream对象创建一个DataInputStream对象

DataOutputStream(OutputStream out):创建一个新的数据输出流,将数据写入文件的方法。

DataInputStream类提供了将字符串、double数据、int数据、boolean数据写入文件的方法。

DataOutputStream类只提供了一个readUTF()方法返回字符串。

【例】使用数据流读写文本文件

代码:

结果:

相关推荐
真的很上进4 分钟前
如何借助 Babel+TS+ESLint 构建现代 JS 工程环境?
java·前端·javascript·css·react.js·vue·html
众拾达人36 分钟前
Android自动化测试实战 Java篇 主流工具 框架 脚本
android·java·开发语言
皓木.38 分钟前
Mybatis-Plus
java·开发语言
不良人天码星38 分钟前
lombok插件不生效
java·开发语言·intellij-idea
守护者1701 小时前
JAVA学习-练习试用Java实现“使用Arrays.toString方法将数组转换为字符串并打印出来”
java·学习
源码哥_博纳软云1 小时前
JAVA同城服务场馆门店预约系统支持H5小程序APP源码
java·开发语言·微信小程序·小程序·微信公众平台
禾高网络1 小时前
租赁小程序成品|租赁系统搭建核心功能
java·人工智能·小程序
学会沉淀。1 小时前
Docker学习
java·开发语言·学习
如若1231 小时前
对文件内的文件名生成目录,方便查阅
java·前端·python
西猫雷婶2 小时前
python学opencv|读取图像(二十一)使用cv2.circle()绘制圆形进阶
开发语言·python·opencv