IO流(上)

本文深入探讨Java.IO流的运行原理、概念和四大抽象类,包括输入流与输出流、字节流与字符流的区别。详细讲解了FileInputStream、FileOutputStream、Reader、Writer等基础流的使用,并介绍了缓冲流、转换流和打印流等处理流的特性和功能,展示了如何利用这些流进行文件复制等实际操作。
摘要由CSDN通过智能技术生成

流的运行原理

1)在Java程序中,对于数据的输入/输出操作以“流”(stream)方式进行。
2)J2SDK提供了各种各样的“流”类,用以获取不同种类的数据;程序中通过标准的方法输入或输出数据。
3)Java的流类型一般位于java.io包中

流的概念

数据源

     data source.提供原始数据的原始媒介。常见的:数据库、文件、其他程序、内存、网络连接、IO设备。
     数据源就像水箱,流就像水管中流着的水流,程序就是我们最终的用户。流是一个抽象、动态的概念,是一连串连续动态的数据集合

流的细分_四大抽象类

流的方向:
1)输入流:数据源到程序(InputStream、Reader读进来)
2)输出流:程序到目的地(OutPutStream、Writer写出去)
处理数据单元:
1)字节流:按照字节读取数据(InputStream、OutputStream)
2)字符流:按照字符读取数据(Reader、Writer)

流的输入输入是针对程序而言,不是针对源和目标而言

功能不同:
1)节点流:可以直接从数据源或目的地读写数据。
2)处理流(包装流):不直接连接到数据源或目的地,是其他流进行封装。目的主要是简化操作和提高性能。
节点流和处理流的关系:
1)节点流处于io操作的第一线,所有操作必须通过他们进行;
2)处理流可以对其他流进行处理(提高效率或操作灵活性)。

IO流的体系

1)InputStream和OutputStream
Java语言中最基本的两个字节输入输出类。
其他所有字节输入输出流类都继承自这两个基类。
这两个类都是抽象类,不能创建它们的实例,只能使用它们的子类

2)Reader和Writer
Java语言中最基本的两个字符输入输出类。
其他所有字符输入输出流类都继承自这两个基类
这两个类都是抽象类,不能创建它们的实例,只能使用它们的子类

文件字节流

FileInputStream/FileOutputStream

使用FileInputStream读取文件内容
1)abstract int read();
2)int read(byte b[]);
3)int read(byte b[],int off,int len);
4)int available();
5)close();

package cn.xjion.pro10;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

public class TestInputStream {
	public static void main(String[] args) throws IOException {
		//(1)数据源与应用程序之间搭建管道
		FileInputStream fis = new FileInputStream("D:\\a.txt");
//		File f = new File("D:\\a.txt");
//		FileInputStream fis = new FileInputStream(f);
		//(2)从数据源开始向程序中读数据
		int count = fis.available();
		System.o
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值