第十五章总结

一.输入/输出流

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()方法返回字符串。

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

代码:

结果:

相关推荐
丁劲犇14 分钟前
用 Turbo Vision 2 为 Qt 6 控制台应用创建 TUI 字符 MainFrame
开发语言·c++·qt·tui·字符界面·curse
旷世奇才李先生28 分钟前
Next.js 安装使用教程
开发语言·javascript·ecmascript
木头没有瓜28 分钟前
idea离线安装插件
java·ide·intellij-idea
llwszx38 分钟前
Spring中DelayQueue深度解析:从原理到实战(附结构图解析)
java·后端·spring·delayqueue·延迟任务
述雾学java1 小时前
Spring Cloud Feign 整合 Sentinel 实现服务降级与熔断保护
java·spring cloud·sentinel
保持学习ing1 小时前
苍穹外卖day3--公共字段填充+新增菜品
java·阿里云·实战·springboot·前后端·外卖项目·阿里云文件存储
charlie1145141911 小时前
深入理解Qt的SetWindowsFlags函数
开发语言·c++·qt·原理分析
77qqqiqi1 小时前
正则表达式
java·后端·正则表达式
厦门德仔2 小时前
【WPF】WPF(样式)
android·java·wpf
大春儿的试验田2 小时前
高并发收藏功能设计:Redis异步同步与定时补偿机制详解
java·数据库·redis·学习·缓存