1.File类
file类专门用于管理file文件的,比如文件的创建,删除,修改名称等等
以下是File类的常用方法:
方法描述
- 判断文件或目录是否存在
- 判断文件是否可读
- 判断文件是否可写
- 判断路径是否表示一个文件
- 判断路径是否表示一个目录
- 获取文件或目录的名称
- 获取文件或目录的父级路径
- 创建新文件
- 删除文件或目录
- 重命名文件或目录
- 返回目录下的文件和目录列表
- 返回目录下的文件和目录数组
1.使用案例:在一个路径上,如果存在一个文件java.txt,则将其删除,如果不存在则创建一个文件java.txt,再将其名字改为java.html并且输出上次的修改日期
2.通过递归实现输出C盘所有文件内容
*面试题Files的常用方法都有哪些?
exist、createFile、createDirectory、write、read、copy、size、delete、move
2.字节输入输出流(InputStream Outputstream)
字节输入输出流的最基本单位是byte字节,注意InputStream和OutputStream都是抽象类,所以实例化对象分别是其子类FileInputStream(File file)与FileOutputStream(File file)
首先介绍OutoutStream字节输出流的常用方法:
方法描述
- write(byte[] buffer)将byte数组中的数据写入输出流
- write(byte[] buffer, int off, int len)将byte数组中指定范围的数据写入输出流
- write(int b)将单个字节写入输出流
- flush()刷新输出流,确保所有缓冲区中的数据都被写出
- close()关闭输出流,并释放相关资源
InputStream的常用方法:
方法描述
- read()读取输入流中的下一个字节
- read(byte[] buffer)将输入流中的数据读入到byte数组中
- read(byte[] buffer, int off, int len)将输入流中的数据读入到指定范围的byte数组中
- skip(long n)跳过并丢弃输入流中的n个字节
- available()返回可以从输入流中读取(或跳过)的字节数
- close()关闭输入流,并释放相关资源
实现在java.txt中通过OutputStream的wirte函数实现第一次覆盖内容实现输入Hello,第二次实现追加在Hello后面加入World
案例2:在刚才基础上读取时候跳过Hello
3.Writer与Reader字符输入输出流
1.字符输入流与字节输入流有什么区别:
- 数据单位:字节流以字节为单位进行输入和输出,而字符流以字符为单位进行输入和输出。字符流可以直接处理Unicode字符,而字节流需要通过字符编码和解码来处理文本数据。
- 编码支持:字符流默认使用平台默认的字符编码(如UTF-8),并提供了更多的字符编码支持(如UTF-16、ISO-8859-1等)。字节流不关心编码,只是原样传输字节数据。
- 数据处理:字符流提供了更高级别的数据处理功能,能够方便地读取和写入文本数据,包括按行读取、字符缓冲等操作。字节流主要用于二进制数据的读写,处理相对底层。
- 效率:由于字符流需要进行字符编码和解码,所以在处理大量数据时可能会比字节流略慢。对于文本数据的处理,字符流的效率通常比较高。
2.Writer与Reader也都是抽象类,所以实例化的时候需要向上转型为其子类,FileWriter与FileReader
Writer的常用方法:
方法描述
- write(int c)将指定字符写入输出流
- write(char[] cbuf)将字符数组的所有字符写入输出流
- write(String str)将字符串中的所有字符写入输出流
- write(String str, int off, int len)将字符串中指定范围的字符写入输出流
- append(CharSequence csq)将指定的字符序列追加到输出流
- append(CharSequence csq, int start, int end)将指定范围的字符序列追加到输出流
- flush()刷新输出流,将缓冲区的数据写入目标设备
- close()关闭输出流,并释放相关资源
案例代码1:
案例代码2:
面试题java 中 IO 流分为几种?
(2)按单位划分,可以分为字节流和字符流;
字节流:inputStream、outputStream;
字符流:reader、writer
4.打印流
下面介绍PrintWriter的常用方法:
- 将boolean值打印到输出流
- 将字符打印到输出流。
- 将整数打印到输出流。
- 将长整数打印到输出流。
- 将浮点数打印到输出流。
- 将双精度浮点数打印到输出流。
- 将字符数组打印到输出流。
- 将字符串打印到输出流。
- 打印一个换行符。
- 刷新输出流,即将缓冲区的内容写入目标设备。
- 关闭输出流,释放相关资源。
姓名:黄小龙
年龄15
案例代码:
`PrintWriter(File file)` 和 `PrintWriter(FileOutputStream out)` 都创建了一个新的 `PrintWriter` 对象,用于写入字符流。它们的区别在于它们的构造函数参数类型不同。
`PrintWriter(File file)` 构造函数接受一个 `File` 对象作为参数,表示要写入的文件。当您使用这个构造函数创建一个 `PrintWriter` 对象时,它将自动为您创建一个 `FileOutputStream` 对象并将其与您指定的文件关联。这意味着您可以直接向 `PrintWriter` 对象写入字符,而不必手动创建 `FileOutputStream` 对象。
例如,以下代码使用 `PrintWriter(File file)` 构造函数创建一个新的 `PrintWriter` 对象,并将其用于向 `example.txt` 文件写入字符:
```java
File file = new File("example.txt");
PrintWriter writer = new PrintWriter(file);
writer.println("Hello, world!");
writer.close();
```相比之下,`PrintWriter(FileOutputStream out)` 构造函数接受一个 `FileOutputStream` 对象作为参数,表示要与该对象关联的输出流。如果您已经有一个 `FileOutputStream` 对象,并且希望将其用作 `PrintWriter` 对象的输出流,可以使用这个构造函数。
例如,以下代码创建一个新的 `FileOutputStream` 对象,并将其用作 `PrintWriter` 对象的输出流:
```java
FileOutputStream outputStream = new FileOutputStream("example.txt");
PrintWriter writer = new PrintWriter(outputStream);
writer.println("Hello, world!");
writer.close();
```
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/25585.html