Java中IO流解析及代码实例 Java中IO流是一种基本的输入/输出机制,用于读取和写入数据。IO流可以分为两种:字节流和字符流。字节流按照字节来读取和写入数据,而字符流按照字符来存取数据。 字节流 字节流是Java中最基本的IO流,按照字节来读取和写入数据。常用的字节流有: 1. FileInputStream/FileOutputStream:用于读取和写入文件的字节流。 2. BufferedInputStream/BufferedOutputStream:用于缓存读取和写入的字节流,提高IO操作的效率。 3. SequenceInputStream:用于将多个字节流合并成一个字节流。 4. ObjectInputStream/ObjectOutputStream:用于读取和写入对象的字节流。 5. PrintStream:用于打印输出的字节流。 字节流的使用非常广泛,在文件读取、网络通信等领域都有应用。 字符流 字符流是Java中用于读取和写入字符的IO流。常用的字符流有: 1. FileReader/FileWriter:用于读取和写入文件的字符流。 2. BufferedReader/BufferedWriter:用于缓存读取和写入的字符流,提高IO操作的效率。 3. InputStreamReader/OutputStreamWriter:用于将字节流转换为字符流的转换流。 转换流 转换流是将字节流转换为字符流的类,常用的转换流有: 1. InputStreamReader:将字节流转换为字符流的输入流。 2. OutputStreamWriter:将字节流转换为字符流的输出流。 包装(decorate) 包装的作用是将原始的对象基础上增加新的功能。例如BufferedReader包装一个Reader,增加了直接读取一行的功能。这种设计模式称为装饰模式。 例子 下面是一个字节流的例子,用于将mp3文件切割成多份数,然后重新组合起来: ```java package cn.xdian.test; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.SequenceInputStream; import java.util.Enumeration; import java.util.Vector; public class Demo2 { public static void main(String[] args) throws IOException { cutFile(); // 切割MP3文件 mergeFlile(); // 合并MP3文件 } // 合并MP3 public static void mergeFlile() throws IOException{ File dir = new File("/home/gavinzhou/music_test"); // 找到文件夹下所有的MP3文件 Vector<FileInputStream> vector = new Vector<FileInputStream>(); File[] files = dir.listFiles(); for (File file : files){ if(file.getName().endsWith(".mp3")){ vector.add(new FileInputStream(file)); } } // ... } } ``` 这个例子中,我们使用SequenceInputStream将多个字节流合并成一个字节流,然后将其写入到一个新的文件中。 Java中IO流是一种基本的输入/输出机制,用于读取和写入数据。IO流可以分为两种:字节流和字符流。字节流按照字节来读取和写入数据,而字符流按照字符来存取数据。转换流可以将字节流转换为字符流。包装可以将原始的对象基础上增加新的功能。
- 粉丝: 11
- 资源: 869
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- coco.names 文件
- (源码)基于Spring Boot和Vue的房屋租赁管理系统.zip
- (源码)基于Android的饭店点菜系统.zip
- (源码)基于Android平台的权限管理系统.zip
- (源码)基于CC++和wxWidgets框架的LEGO模型火车控制系统.zip
- (源码)基于C语言的操作系统实验项目.zip
- (源码)基于C++的分布式设备配置文件管理系统.zip
- (源码)基于ESP8266和Arduino的HomeMatic水表读数系统.zip
- (源码)基于Django和OpenCV的智能车视频处理系统.zip
- (源码)基于ESP8266的WebDAV服务器与3D打印机管理系统.zip