5.13 I/O流

package org.westos.IO流博客练习;

import java.io.FileOutputStream;
import java.io.IOException;

/**
 * IO:在设备和设备之间的一种数据传输!
 * IO流的分类:
 * 		按流的方向分:
 * 			输入流: 读取文件   (e:\\a.txt):从硬盘上文件读取出来后输出这个文件的内容
 * 			输出流: 写文件:将e:\\a.txt 内容读出来--->写到f盘下
 * 		按数据的类型划分:
 * 			字节流
 * 				字节输入流:InputStream		:读取字节
 * 				字节输出流:OutputStream	:写字节
 * 			字符流	
 * 				字符输入流:Reader			:读字符
 * 				字符输出流:Writer			:写字符
 * 需求:在当项目下输出一个文件,fos.txt文件(文本文件)
 * 	只要文本文件,优先采用字符流,字符流在字节流之后出现的
 * 	使用字节流进行操作
 * 			无法创建字节输出流对象:OutputSteam :抽象类,不能实例化
 * 			又学习过File类,并且当前是对文件进行操作,子类:FileOutputSteam进行实例化
 * 			
 * 			File+InputStream
 * 			File+OutputStream
 * 			FileXXX  (FileReader)
 * 			FileXXX  (FileWriter)
 * 
 * 开发步骤:
 * 		1)创建字节输出流对象
 * 		2)写数据
 * 		3)关闭资源
 * 关于字节输出流写数据的方法
 *	 	public void write(int b):一次写一个字节
 * 	 	public void write(byte[] b) :一次写一个字节数组
 * 	 	public void write(byte[] b, int off,int len):一次写一部分字节数组
 * */
public class Text1 {
	public static void main(String[] args) throws IOException {
		FileOutputStream f = new FileOutputStream("E:\\demo\\apple\\apple.txt");
		//若是找不到指定的路径,则java.io.FileNotFoundException
		//若是找不到文件,则会创建一个文件
		f.write("hello world!".getBytes());//需要将String转化为byte类型
		byte[] by = {45,56,57,58,59};
		//写入一个字节数组
		f.write(by);
		//关闭资源
		f.close();
		//在文本中的内容为hello world!-89:;
	}
}

package org.westos.IO流博客练习;

import java.io.FileOutputStream;
import java.io.IOException;
/**
 * 换行符:
 * 		windows: \r\n
 * 		Linx:\n
 * 		mac:\r
 * public FileOutputStream(File file, boolean append):指定为true,末尾追加数据
 * */
public class Text2 {
	public static void main(String[] args) throws IOException {
		FileOutputStream f = new FileOutputStream("E:\\demo\\apple\\apple.txt",true);
		f.write("\r\n".getBytes());
		f.write("ABCD".getBytes());
		f.close();
	}
}

package org.westos.IO流博客练习;

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

/**
 * 读取数据:
 *  InputStream抽象类:字节输入流
 *	FileInputStream
 *			构造方法:	
 *				public FileInputStream(String name)
 * 开发步骤:
 * 		1)创建字节文件输入流对象
 * 		2)读数据
 * 		3)释放资源
 * 
 * 读数据方式:
 * 		public abstract int read():一次读取一个字节
 * 		public int read(byte[] b):一次读取一个字节数组 (读取实际的字节数)
 * */
public class Text3 {
	public static void main(String[] args) throws IOException {
		FileInputStream f = new FileInputStream("E:\\\\demo\\\\apple\\\\apple.txt");
		int by = 0 ;
		//一次读取一个字节
		while((by=f.read())!=-1) {
			char ch = (char)by;
			System.out.print(ch);
		}
		//释放资源
		f.close();
		System.out.println("------------------");
		//一次读取一个数组
		FileInputStream ff = new FileInputStream("E:\\\\demo\\\\apple\\\\apple.txt");
		byte[] bys = new byte[1024];
		int len = 0;
		while((len = ff.read(bys))!=-1) {
			System.out.println(new String(bys, 0, len));
		}
		ff.close();
	}
}

package org.westos.IO流博客练习;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * 复制文件
 * */
public class Text4 {
	public static void main(String[] args) throws IOException {
		FileInputStream fis = new FileInputStream("E:\\demo\\text\\Begin - 三线の花.mp3");
		FileOutputStream fos = new FileOutputStream("E:\\demo\\apple\\复制音乐.mp3");
		byte[] bys = new byte[1024];
		int len = 0;
		while((len = fis.read(bys))!=-1) {
			fos.write(bys,0,len);
		}
		//释放资源,先释放后开启的
		fos.close();
		fis.close();
	}
}

本指南详细阐述基于Python编程语言结合OpenCV计算机视觉库构建实时眼部状态分析系统的技术程。该系统能够准确识别眼部区域,并对眨眼动作与持续闭眼状态进行判别。OpenCV作为功能强大的图像处理工具库,配合Python简洁的语法特性与丰富的第三方模块支持,为开发此类视觉应用提供了理想环境。 在环境配置阶段,除基础Python运行环境外,还需安装OpenCV核心模块与dlib机器学习库。dlib库内置的HOG(方向梯度直方图)特征检测算法在面部特征定位方面表现卓越。 技术实现包含以下关键环节: - 面部区域检测:采用预训练的Haar级联分类器或HOG特征检测器完成初始人脸定位,为后续眼部分析建立基础坐标系 - 眼部精确定位:基于已识别的人脸区域,运用dlib提供的面部特征点预测模型准确标定双眼位置坐标 - 眼睑轮廓分析:通过OpenCV的轮廓提取算法精确勾勒眼睑边缘形态,为状态判别提供几何特征依据 - 眨眼动作识别:通过连续帧序列分析眼睑开合度变化,建立动态阈值模型判断瞬时闭合动作 - 持续闭眼检测:设定更严格的状态持续时间与闭合程度双重标准,准确识别长时间闭眼行为 - 实时处理架构:构建视频处理管线,通过帧捕获、特征分析、状态判断的循环程实现实时监控 完整的技术文档应包含模块化代码实现、依赖库安装指引、参数调优指南及常见问题解决方案。示例代码需具备完整的错误处理机制与性能优化建议,涵盖图像预处理、光照补偿等实际应用中的关键技术点。 掌握该技术体系不仅有助于深入理解计算机视觉原理,更为疲劳驾驶预警、医疗监护等实际应用场景提供了可靠的技术基础。后续优化方向可包括多模态特征融合、深度学习模型集成等进阶研究领域。 资源来源于网络分享,仅用于学习交使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值