JavaIO的常用方法.docx
Java IO 流是Java平台提供的一种处理输入输出的机制,其主要目的是为了在程序与外部资源(如磁盘、网络、内存等)之间传输数据。Java IO 包含了大量的类和接口,使得开发者能够方便地进行文件的读写操作。 在Java中,IO流按照数据传输的方向可以分为输入流(Input Stream)和输出流(Output Stream)。输入流用于从数据源(如文件、网络连接等)读取数据,而输出流则用于向目的地(如文件、网络连接等)写入数据。根据操作的数据单位不同,流又分为字节流(Byte Stream)和字符流(Character Stream)。字节流可以处理任意类型的数据,而字符流则主要用于处理文本数据。 1. 字节流: - 字节输入流(InputStream):InputStream 是所有字节输入流的抽象基类,它定义了字节输入流的基本操作。例如,`FileInputStream` 是字节输入流的一个具体实现,用于从文件中读取字节数据。以下是一个简单的使用 `FileInputStream` 读取文件的例子: ```java import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; public class IODemo01 { public static void main(String[] args) throws IOException { File file = new File("D:/haha.txt"); FileInputStream is = new FileInputStream(file); // 读取字节数据 int num = is.read(); System.out.println((char) num); // 关闭流 is.close(); } } ``` - 字节输出流(OutputStream):OutputStream 是所有字节输出流的抽象基类,提供了写入字节数据的基本方法。例如,`FileOutputStream` 是字节输出流的一个具体实现,用于向文件写入字节数据。以下是一个使用 `FileOutputStream` 写入文件的例子: ```java import java.io.FileOutputStream; import java.io.IOException; public class IODemo04 { public static void main(String[] args) throws IOException { // 创建输出流,追加模式 FileOutputStream os = new FileOutputStream("D:/lalala.txt", true); // 写入字节数据 os.write("不吃饭修仙哈哈哈".getBytes()); // 刷出缓存,确保数据被写入 os.flush(); // 关闭流 os.close(); } } ``` 2. 字符流: - 字符输入流(Reader):Reader 类是所有字符输入流的抽象基类,处理字符序列。例如,` FileReader` 可以从文件中读取字符数据。 - 字符输出流(Writer):Writer 类是所有字符输出流的抽象基类,处理字符序列的写入。例如,`FileWriter` 可以向文件写入字符数据。 3. 节点流与功能流: - 节点流:直接操作数据源或目的地的流,如 `FileInputStream` 和 `FileOutputStream`,它们是流的基本操作单位。 - 功能流(Filter Stream):在节点流之上提供额外功能的流,如 `BufferedInputStream` 和 `BufferedOutputStream`,它们提高了读写性能,并提供了缓冲区功能。 4. 文件拷贝: 使用字节流可以方便地实现文件的拷贝。以下是一个使用 `FileInputStream` 和 `FileOutputStream` 实现文件拷贝的示例: ```java import java.io.*; public class CopyUtils { public static void copyFile(String src, String dest) { try (InputStream is = new FileInputStream(src); OutputStream os = new FileOutputStream(dest)) { byte[] buffer = new byte[1024]; int length; while ((length = is.read(buffer)) > 0) { os.write(buffer, 0, length); } } catch (IOException e) { e.printStackTrace(); } } } ``` 上述代码中,通过不断读取源文件的字节并写入目标文件,实现了文件的复制。 Java IO 流系统设计灵活,通过组合不同类型的流,可以实现各种复杂的数据传输需求。例如,可以通过 `BufferedReader` 和 `BufferedWriter` 提高性能,或者使用 `DataInputStream` 和 `DataOutputStream` 来处理基本数据类型。此外,Java NIO(New IO)框架提供了更高效、非阻塞的I/O操作方式,适用于高并发场景。
剩余12页未读,继续阅读
- 粉丝: 13
- 资源: 17
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助