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
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- Java语言字符串前补零和后补零的快速方法
- 基于RRT与自重构技术的UAV编队避障与动态队形调整研究 · RRT
- 基于Simulink的单轮车辆ABS防抱死控制系统仿真模型及其应用 · Simulink 深度版
- Java语言移动整个文件夹或单个文件到另一个文件夹
- Python实现神经网络模型的数学公式识别源码文档说明
- 电力系统中配电网最优潮流的SOCP松弛技术应用与实现
- WinCC高级报表工具:自定义模板与多格式输出在工业自动化中的应用
- 基于ADRC控制的Matlab Simulink半车主动悬架建模:优化车身加速度与悬架性能的仿真研究 MatlabSimulink
- Java中文件与字节数组(byte)相互转换
- 使用PyTorch深度学习框架基于BiLSTM CRF的中文分词系统
- 基于BP神经网络的MNIST手写数字识别Python源码(期末大作业)
- C#基于.NET框架的串口数据读取与多曲线显示系统的实现
- Java语言清空文件夹下所有文件
- 基于OpenCV C#开发的圆卡尺、矩形卡尺等测量工具源码集,含视觉控件与自定义图形工具,运行稳定且操作便捷 v3.0
- PFC5.0技术下的预制裂隙含锚杆试样单轴压缩特性研究
- COMSOL多物理场仿真:压电效应中结构力学与静电场耦合模型及其应用


