总结
iO 流用来处理设备之间的数据传输.
Java 程序中, 对于数据的输入 / 输出操作以 "流(stream)" 的方式进行
输入 input: 读取外部数据 (磁盘, 光盘等存储设备的数据) 到程序 (内存) 中.
输出 output: 将程序 (内存) 数据输出到磁盘, 光盘等存储设备中
IO 流体系
按操作数据单位不同分为: 字节流(8 bit), 字符流(16 bit)
按数据流的流向不同分为: 输入流, 输出流
按流的角色的不同分为: 节点流, 处理流
Java 的 IO 流共涉及 40 多个类, 实际上非常规则, 都是从如下 4 个抽象基类派生的.
由这四个类派生出来的子类名称都是以其父类名作为子类名后缀.
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- public class Test3 {
- public static void main(String[] args) {
- // 文件字节输入流
- Test3.testFileInputStream();
- // 文件字节输出流
- Test3.testOutputStream();
- }
- // 文件字节输入流
- public static void testFileInputStream() {
- try {
- // 创建 FileInputStream 对象
- FileInputStream in = new FileInputStream("D:\\test\\tt.txt");
- // 定义 byte 类型的数组, 设置一个读取数据的长度
- byte[] b = new byte[10];
- //in.read(b)方法有一个返回值, 返回值是读取的数据的长度, 如果读取到最后一个数据, 还会向后读一个
- // 也就意味着当 in.read(b)的返回值是 - 1 时, 整个文件读取完毕了
- // in.read(b);
- // System.out.println(new String(b));// 打印要转 string 字符
- // System.out.println(b);//[[email protected]
- // in.close();
- int len = 0;
- while((len=in.read(b)) != -1) {
- // 参数 1 是缓冲数据的数组, 参数 2 是数组的哪个位置开始转化字符串, 参数总共转化几个字符
- System.out.println(new String(b,0,len));
- }
- in.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- // 文件字节输出流
- public static void testOutputStream() {
- try {
- FileOutputStream out = new FileOutputStream("D:\\test\\tt1.txt");
- String str = "abdadf11232";
- out.write(str.getBytes());// 将数据写到内存
- out.flush();// 将内存中的数据刷写到硬盘
- out.close();// 关闭流
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
来源: http://www.bubuko.com/infodetail-3346969.html