第十五章总结

一.输入/输出流

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

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

代码:

结果:

相关推荐
周末也要写八哥8 小时前
代码中的注释的重要性(二)
开发语言·python
殷紫川8 小时前
90% Java 开发都踩过坑的 @Resource 与 @Autowired
java
kybs19918 小时前
springboot租车系统--附源码68701
java·hadoop·spring boot·python·django·asp.net·php
过期动态9 小时前
MySQL中的约束
android·java·数据库·spring boot·mysql
wxin_VXbishe9 小时前
springboot新能源车充电站管理系统小程序-计算机毕业设计源码29213
java·c++·spring boot·python·spring·django·php
程序员陆通9 小时前
月烧 400 刀到不到 20 刀:我是怎么把 OpenClaw 的 Token 账单砍掉 95% 的
java·前端·数据库
江南十四行9 小时前
Python生成器与协程:从迭代器到异步编程的进阶之路
开发语言·python
代码漫谈9 小时前
一文学习 SpringBoot 的 application.yml 配置,基于 Spring Boot 3.2.x
java·spring boot·spring·配置文件
SamDeepThinking9 小时前
程序员如何接受工作内容毫无意义?
java·后端·程序员
测试员周周9 小时前
【AI测试功能3】AI功能测试的三层架构:单元测试 → 集成测试 → E2E测试——AI系统测试金字塔实战指南
开发语言·人工智能·python·功能测试·架构·单元测试·集成测试