Java---IO

一、File 类

二、流  字节流 、字符流

三、缓存类


 IO 流用来处理设备之间的数据传输

java程序中,对数据的输入/输出操作以流(stream)的方式进行

java.io包下提供了各种“流”类和接口,用以获取不同种类的数据,并通过标准的方法输入

输出数据。

输入输出时一个相对的概念  

input读取外部数据 (磁盘,光盘等存储设备的数据)到程序(内存)中。

output 将程序中的数据输出到磁盘上/光盘上等设备中。

理解方法:将自己看成程序,流向你的就是输入,流出去的输出。

流的分类

操作数据的基本单位不同分为:字节流(8bit),字符流(16bit)

按照流的角色不同分为:节点流(直接处理文件[file]),处理流(包装节点流作用---->加速节点流)

(抽象基类)

字节流(视频、图片、【二进制流】)      

字符流(文本文件)

输入流(节点流)

inputStream

Reader

输出流(节点流)

OutputStream

Writer

抽象基类不能造对象,只能通过子类实现

1.Java的IO流共40多个类,都是4个抽象基类派生出来的

2.派生出来的子类名称都是以其父类名作为子类名的后缀




/**
 * 流向:io 
 * 单位分:字节流、字符流
 * 角色分:节点流【文件流】(直接作用于文件)、处理流
 */
public class TestStream {
	
	//一桶一桶的读取节点(文件流)
	@Test
	public void testFileInputStream1() throws Exception
	{
		// 1.创建File类的对象
		// 要读取的文件一定存在
		File file = new File("hello.txt");
		// 2.创建一个FileInputStram类对象
		FileInputStream fis = new FileInputStream(file);
		// 3.调用FileInputStream的方法,实现file文件的读取
		// read 读取文件的字节(bit),当执行到文件结尾时,打印-1
		int b = fis.read();
		while (b != -1) 
		{
			System.out.print((char) b);
			b = fis.read();
		}
		// 4.关闭相应的流
		fis.close(); // 如果直接将异常抛出去,后面的代码没执行,流没关一直在占用着内存
	}

	
	//一车一车读取文件流
	@Test
	public void testFileInputStream3() 
	{
		FileInputStream fis = null;
		try {
				File file = new File("hello.txt");
				fis = new FileInputStream(file);
				byte[] b = new byte[20]; //
				int len;
				while ((len = fis.read(b)) != -1)
				{
					for (int i = 0; i < len; i++) 
					{
						System.out.print((char)b[i]);
					}
				}
					catch (IOException e) 
		{
			e.printStackTrace();
				finally 
		{
			if (fis != null) 
			{
				try 
				{
					fis.close();
				}
				catch (IOException e) 
				{
					e.printStackTrace();
				}
			}
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值