黑马程序员_Java学习日记12_IO流1

Java + Dlib实现人脸识别 一. 效果展示 在学习人脸识别的过程中,刚开始我是从opencv开始学习的,后来发现还有一种使用dlib来检测的方法,并且,在图像处理中,有些美颜功能,例如数字化妆功能,也需要使用dlib来实现,所以就研究了一下如何在Java中使用dlib,很遗憾的是国内的社区,网站,论坛并没有关于如何用Java结合dlib来实现人脸识别的教程或者文章,大多数都是使用C++或者python, 所以想分享一下如何实现Java + Dlib来实现人脸识别. 在实现功能之前,我们需要做一些基础准备,就是将dli 阅读详情

----------------------android培训、java培训、期待与您交流! ---------------------

1.IO流概述(Input,Output)

IO流用来处理设备之间的数据传输,Java对数据的操作是通过流的方式,Java用于操作流的对象都在IO包中
流按操作数据分为两种:字节流和字符流
流按流向分为:输入流,输出流

字符流的由来:
a 97
A 65
ASCII
GB2312--》GBK
Unicode---2个字节表示
UTF8

IO流常用基类
字节流的抽象基类:InputStream,OutputStream
字符流的抽象基类:Reader,Writer
注,由这4个派生出来的子类名称都是其父类名作为子类名的后缀。
如:InputStream的子类FileInputStream
如:Reader的子类FileReader



2.IO流,FileWriter

字符流和字节流:
字节流两个基类:InputStream   OutputStream
字符流两个基类:Reader Writer

先学习一下字符流的特点。
既然IO流是用于操作数据的,那么数据的最常见体现形式是:文件。
那么先以操作文件为主来演示。

需求:在硬盘上,创建一个文件并写入一些文字数据。
找到一个专门用于操作文件的Writer子类对象。FileWriter。  后缀名是父类名。 前缀名是该流对象的功能。

import java.io.*;
class  FileWriterDemo
{
	public static void main(String[] args) throws IOException
	{
		//创建一个FileWriter对象。该对象一被初始化就必须要明确被操作的文件。
		//而且该文件会被创建到指定目录下。如果该目录下已有同名文件,将被覆盖。
		//其实该步就是在明确数据要存放的目的地。
		FileWriter fw = new FileWriter("demo.txt");

		//调用write方法,将字符串写入到流中。
		fw.write("abcde");

		//刷新流对象中的缓冲中的数据。
		//将数据刷到目的地中。
		//fw.flush();

		//关闭流资源,但是关闭之前会刷新一次内部的缓冲中的数据。
		//将数据刷到目的地中。
		//和flush区别:flush刷新后,流可以继续使用,close刷新后,会将流关闭。
		fw.close();
	}
}

3.IO异常处理方式

import java.io.*;

class  FileWriterDemo2
{
	public static void main(String[] args) 
	{
		FileWriter fw = null;
		try
		{
			fw = new FileWriter("demo.txt");
			fw.write("abcdefg");

		}
		catch (IOException e)
		{
			System.out.println("catch:"+e.toString());
		}
		finally
		{
			try
			{
				if(fw!=null)
					fw.close();				
			}
			catch (IOException e)
			{
				System.out.println(e.toString());
			}
			
		}		

	}
}


4.IO流,文件的续写

/*
演示对已有文件的数据续写。
*/
import java.io.*;
class  FileWriterDemo3
{
	public static void main(String[] args) throws IOException
	{
		//传递一个true参数,代表不覆盖已有的文件。并在已有文件的末尾处进行数据续写。
		FileWriter fw = new FileWriter("demo.txt",true);
		fw.write("nihao\r\nxiexie");
		fw.close();
	}
}

5.IO流,文本文件的读取

方式一:

import java.io.*;

class  FileReaderDemo
{
	public static void main(String[] args) throws IOException
	{
		//创建一个文件读取流对象,和指定名称的文件相关联。
		//要保证该文件是已经存在的,如果不存在,会发生异常FileNotFoundException
		FileReader fr = new FileReader("demo.txt");

		//调用读取流对象的read方法。
		//read():一次读一个字符。而且会自动往下读。
		
		int ch = 0;

		while((ch=fr.read())!=-1)
		{
			System.out.println("ch = "(char)ch);
		}
		/*
		while(true)
		{
			int ch = fr.read();
			if(ch==-1)
				break;
			System.out.println("ch="+(char)ch);
		}
		*/
		fr.close();


	}
}

方式二:

/*
第二种方式:通过字符数组进行读取。
*/

import java.io.*;

class FileReaderDemo2 
{
	public static void main(String[] args) throws IOException
	{
		FileReader fr = new FileReader("demo.txt");
		
		//定义一个字符数组。用于存储读到字符。
		//该read(char[])返回的是读到字符个数。
		char[] buf = new char[1024];

		int num = 0;
		while((num=fr.read(buf))!=-1)
		{
			System.out.println(new String(buf,0,num));
		}
		fr.close();
	}
}

文本文件读取练习:

//读取一个.java文件,并打印在控制台上。
import java.io.*;

class FileReaderTest 
{
	public static void main(String[] args) throws IOException
	{
		FileReader  fr = new FileReader("DateDemo.java");

		char[] buf = new  char[1024];

		int num = 0;

		while((num=fr.read(buf))!=-1)
		{
			System.out.print(new String(buf,0,num));
		}
		fr.close();
	}

}

拷贝文本文件

//将C盘一个文本文件复制到D盘。
/*
复制的原理:
其实就是将C盘下的文件数据存储到D盘的一个文件中。

步骤:
1,在D盘创建一个文件。用于存储C盘文件中的数据。
2,定义读取流和C盘文件关联。
3,通过不断的读写完成数据存储。
4,关闭资源。
*/

import java.io.*;

class CopyText 
{
	public static void main(String[] args) throws IOException
	{
		copy_2();
	}

	public static void copy_2()
	{
		FileWriter fw = null;
		FileReader fr = null;
		try
		{
			fw = new FileWriter("SystemDemo_copy.txt");
			fr = new FileReader("SystemDemo.java");

			char[] buf = new char[1024];
			int len = 0;
			while((len=fr.read(buf))!=-1)
			{
				fw.write(buf,0,len);
			}
		}
		catch (IOException e)
		{
			throw new RuntimeException("读写失败");
		}
		finally
		{
			if(fr!=null)
				try
				{
					fr.close();
				}
				catch (IOException e)
				{
				}
			if(fw!=null)
				try
				{
					fw.close();
				}
				catch (IOException e)
				{
				}
		}
	}

	//从C盘读一个字符,就往D盘写一个字符。
	public static void copy_1()throws IOException
	{
		//创建目的地。
		FileWriter fw = new FileWriter("RuntimeDemo_copy.txt");

		//与已有文件关联。
		FileReader fr = new FileReader("RuntimeDemo.java");

		int ch = 0;

		while((ch=fr.read())!=-1)
		{
			fw.write(ch);
		}		
		fw.close();
		fr.close();
	}
}











-----------------------android培训、java培训、期待与您交流! ----------------------

详细请查看:http://edu.youkuaiyun.com/heima

eidlib:原生 Java 电子身份证库 *** 注意:我不再维护这个项目。 *** 原生 Java 电子身份证库 e-ID 库是一个用户友好的 Java 库,用于在比利时电子身份证上执行操作。 自从在比利时引入 e-ID(电子身份证)以来,越来越多的应用程序使用它。 除了作为身份证明之外,您还可以在计算机上执行大量管理问题、签署电子文档和电子邮件,并为孩子们提供安全的聊天会话。 可以在找到许多可用应用程序的完整说明。 随着应用程序数量的增加,越来越需要支持多种语言的电子身份证,尤其是 Java,它已经发展成为最流行的编程语言之一。 长期以来,Java 的问题在于,由于其平台独立性,驱动程序功能无法在原生 Java 中完成。 规避此问题的唯一方法是应用 JNI(Java 本机接口),它允许本机调用 C(或 C++、汇编等)。 在由 Fedict 发布的原始中间件中,存在一个 JNI 层,它允许 Java 程序员在电子身份证上执 立即下载

相关推荐

防止通达信公式被盗?手把手教你用DLL加密+互联网验证(含易语言后台管理)

本文详细介绍了如何通过DLL加密与互联网验证技术保护通达信公式安全。从DLL加密实现、设备绑定到易语言后台管理,提供了一套完整的防护方案,有效防止公式被盗用。重点讲解了互联网验证登录和绑定设备等核心技术,帮助量化交易者守护核心资产。

weixin_29323551的博客 501

java dlib实现人脸检测_利用dlib库进行人脸检测

一、dlib的使用dlib需要预先的安装①安装Python还是推荐3.5②下载dlib的安装包https://pypi.python.org/pypi/dlib/18.17.100选择匹配的版本,dlib-18.17.100-cp35-none-win_amd64.whl(md5)③通过命令pip install dlib-18.17.100-cp35-none-win_amd64.whl进行安装...

weixin_34135180的博客 1554

高云FPGA开发实战:手把手教你用ModelSim做功能仿真与时序分析(附Testbench写法)

本文详细介绍了高云FPGA开发中如何使用ModelSim进行功能仿真与时序分析,包括环境搭建、Testbench编写、波形调试和时序优化等实战技巧。通过具体案例和代码示例,帮助开发者掌握FPGA仿真验证的核心方法,提升设计可靠性。特别针对高云GW5A系列器件提供了专业的仿真库配置指南和时序分析策略。

weixin_30412167的博客 467

JNI 实现人脸检测

dlib通常会自动检测系统上的JPEG、BLAS和LAPACK库。如果你已经安装了这些库,dlib应该能够自动找到并使用它们。确保你已经安装了JPEG库、BLAS和LAPACK库。

mdd优快云的博客 651

UDS 诊断 - CommunicationControl(通信控制)(0x28)服务 诊断

字节参数名称字节值#1CommunicationControl(通信控制)请求SID0x28#2#3communicationType(通信类型)#4nodeIdentificationNumer(节点标识符)(高位字节)controlType 为 0x04 或 0x05 时,使用该参数#5nodeIdentificationNumer(节点标识符)(低位字节)controlType 为 0x04 或 0x05 时,使用该参数。

耳朵东金子千的博客 1820

有限时间 vs 固定时间 vs 预定时间滑模:稳定性分析与仿真验证方法对比(中)

有限时间滑模控制(FTSMC)和固定时间滑模控制(FixTSMC)是两种重要的控制策略,旨在实现系统状态的快速收敛。FTSMC通过设计滑模面和控制律,确保系统状态在有限时间内收敛到原点,但其收敛时间与初始状态相关。FixTSMC则进一步优化,使收敛时间与初始状态无关,适用于高动态环境,具有更强的鲁棒性和更平滑的控制信号。两种方法均通过李雅普诺夫函数证明其稳定性,并通过仿真验证其有效性。FixTSMC在工程应用中更为可靠,尤其适合安全关键系统。

Lyajpunov的博客 3224

java dlib实现人脸检测_【dlib代码解读】人脸关键点检测器的训练

1. 源代码先给出测试的结果,关键点并不是特别准,原因是训练样本数据量太少。以下给出完整的人脸关键点检测器训练代码。详细的代码解读请看第二部分。/* faceLandmarksTrain.cppfunction:借助dlib训练自己的人脸关键点检测器(参考dlib/examples/train_shape_predictor_ex)date:2016/11/6author:Elaine_Bao*/...

weixin_29197835的博客 1216

思科网络进阶——多生成树协议(MSTP)配置的一课一得

三、实验拓扑1)设计一个网络架构,要有核心层和接入层,都使用思科交换机。2)企业有4个部门,要求这四个部门都可以上网,但分属不同的VLAN中,这样今后可以做其它安全策略以确保网络安全,这些策略如今后学到的访问控制列表ACL。3)网络架构的设计要具有冗余,防止一条线路或一台设备终端导致的业务中断。4)由于硬件冗余而产生的环路要处理好,也就是要在逻辑上(或者说通过配置)防止物理环路的产生。5)不能因为防止物理环路而导致某端口没有流量,这样浪费端口资源及设备间互联的带宽资源。

zhu52010的博客 3398

java 社群检测_视频人脸检测——Dlib版(六)

往期目录前言Dlib的人脸识别要比OpenCV精准很多,一个是模型方面的差距,在一方面和OpenCV的定位有关系,OpenCV是一个综合性的视觉处理库,既然这么精准,那就一起赶快来看吧。视频人脸检测是图片识别的高级版本,图片检测详情点击查看我的上一篇《图片人脸检测——Dlib版(四)》除了人脸识别用的是Dlib外,还是用OpenCV读取摄像头和处理图片(转为灰色),所以给出相关的文档,方便理解。效...

weixin_32823993的博客 347

GAN管CGH40010F设计宽带Doherty功放:如何用ADS搞定输入匹配、合路网络与功分器?

本文详细介绍了基于CGH40010F GaN晶体管的宽带Doherty功放设计流程,重点讲解在ADS平台中实现输入匹配网络、合路网络与功分器的关键技术。通过寄生参数补偿、渐变微带线设计和复合补偿结构等方法,解决了宽带化设计中的核心挑战,最终实现1.7-2.6GHz频段内72%的峰值效率和52%的回退效率。

weixin_42614269的博客 473

1. BES2700ZP概述

恒玄BES2700采用RTX5操作系统,配合mindmics算法或者自研算法。

雪飞_海 4467

黑马程序员_JAVA学习日记_JAVA中的IO流

黑马程序员-学习日记   黑马程序员_JAVA学习日记_JAVA中的IO流   ------- android培训、java培训、期待与您交流! ----------   一:概念: A:根据处理的数据不同;分为:字节流和字符流。 所有的数据都是以字节体现的;后期产生了字符流。 因为字符数据涉及到了编码问题;所以在字符流对象中加入了编码机制。 举例来进行代码体现: 使用jav

Java程序员命运之改变 905

FAST-LIVO2 源码精读(十八):实时性优化、漂移排查与工程落地

FAST-LIVO2 的工程价值,不在于某一个孤立的技巧,而在于它把"激光的几何精度、惯性的高频预测、视觉的纹理与色彩"用一套简洁的滤波框架紧紧拧在一起,又在实时性、鲁棒性、可扩展性之间取得了难得的平衡。先用内建计时表定位瓶颈,再按降采样、并行、滑窗、编译优化、双频输出逐项加速;遇到漂移先看现象、循诊断树定位根因、回到对应章节取解法。十八篇至此收束。

PX4-SLAM-PNC 217

黑马程序员_java学习日记_IO流

----------------------- android培训、java培训、java学习型技术博客、期待与您交流! ----------------------   IO(input output)流 IO流用来处理设备之间的数据传输,Java对数据的操作是通过流的方式,这些流对象都在IO包中; 流按操作数据分为两种:字节流和字符流 按流向分为:输入流和输出流 字节流的抽象基类:

qiufeng6928377的专栏 732

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

黑马程序员——基础学习日记(IO流)

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- IO流、笔记 IO流概述 (1)用来处理设备(硬盘,控制台,内存)间的数据。 (2)java中对数据的操作都是通过流的方式。 (3)java用于操作流的类都在io包中。 (4)按照流操作的数据的类型不同:分为字节流和字符流。字符流是为了方便中文的操作而来的。

wjy1090233191的专栏 750

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

黑马程序员_Java学习日记第六天--IO流

------- android培训、java培训、期待与您交流! ---------- IO流   字符流: FileWriter:创建一个FileWriter对象,该对象一被初始化就必须要明确被操作的文件,而且该文件会被创建到指定目录下。如果该目录下已有同名文件,将被覆盖。 Flush  刷新流对象的缓冲。 Close  会关闭流资源,但是关闭之前会刷新一次内部的缓冲中的数据

ty163yu998的专栏 2043

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

黑马程序员--Java学习日记之复习总结(递归以及IO流概述)

一.递归:  1.递归是基于:方法可以自己调用自己;  2.注意:   1).一定要有出口,否则就是死递归;   2).次数不能太多,否则堆栈溢出;   3).构造方法不能递归调用;  3.重点练习:   1).递归输出指定目录下所有的java文件的绝对路径案例   2).递归删除带内容的目录案例 二.IO流:  1.IO流概念:   1.IO流:InputStrea

Memor_的博客 867

黑马程序员-JAVA基础学习日记八——IO流的学习总结

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 这几天学习了毕老师的io流,特集各处之长做下总结: 一、什么是流? 流就是字节序列的抽象概念,能被连续读取数据的数据源和能被连续写入数据的接收端就是流,流机制是Java及C++中的一个重要机制,通过流我们可以自由地控制文件、内存、IO设备等数据的流向。而IO流就是用于处理设备上的数据,

无码骑兵的博客 736

黑马程序员Java Io 日记

---------------------- android培训、java培训、期待与您交流! ---------------------- java中的io中的(input/output)stream无非就是包括基于字符的stream、基于字节的stream和把字节导向的stream转换 字符为导向的stream的stream。(很难理解么?) 以字节为导向的stream------Inp

haodi2012的专栏 454

黑马程序员————学习日记【11】 【IO流】

------- android培训、java培训、期待与您交流! ----------   System:类中的方法和属性都是静态的 out:标准输出,默认是控制台 in:标准输入,默认是键盘 描述系统一些信息 获取系统属性信息:Properties getProperties(); import java.util.*; class SystemDemo { pu

xinghuo189的专栏 646

黑马程序员 IO的学习日记

011年8月4日星期四  一大早起来,收拾好,就打开电脑进入奋战中。也随时关注着群里消息。怕错过什么重大消息。   我接着昨天的字符编码看,不过效果还是不好,我就加快了播放速度。唉!好不容易字符编码看完了。不过多少还是有点收获,心里总还是好受点。  字符编码每个国家的都不同

408

黑马程序员-学习日记13(IO流 2 )

-------android培训、java培训、期待与您交流! ----------     .IO流(BufferdeWriter)  1.字符流的缓冲区   1)缓冲区是为了提高流的操作效率而出现的。   所以在创建缓冲区之前,必须要先有流对象。   缓冲区在流的基础上对流的功能进行了增强。   2)该缓冲区中提供了一个跨平台的换行符:newLine();   3)对

382

黑马程序员-学习日记15(IO流 3 )

-------android培训、java培训、期待与您交流! ----------     .File类(java.io包):   1)用来将文件或者文件夹封装成对象   2)方便对文件与文件夹的属性信息进行操作。//流只能操作数据。   3)File对象可以作为参数传递给流的构造函数。   4)了解File类中的常用方法。  2.深入介绍File类   1)文件和目录

211

黑马程序员 java视频学习日记

2011年8月3日                          今天终于开始了视频学习的第一天,刚开始还真是有点激动,因为不知道接下来会怎样。 我自认为自己的基础还可以,所以就先从IO看起了。一打开视频,眼前出现的是一段前奏感觉真的不一样。更增强了我加入黑马的决心。以

500

黑马程序员--Java学习日记之IO流(字符流和字节流)

IO流概述及其分类 概念      IO流用来处理设备之间的数据传输      Java对数据的操作是通过流的方式      Java用于操作流的类都在IO包中      流按流向分为两种:输入流,输出流。      流按操作类型分为两种:          字节流 : 字节流可以操作任何数据,因为在计算机中任何数据都是以字节的形式存储的          字符流 : 字符流只能操

MH_LZX001的博客 496

黑马程序员java学习日记十一 IO流

一、IO流的三种分类方式 1.按流的方向分为:输入流和输出流 2.按流的数据单位不同分为:字节流和字符流 3.按流的功能不同分为:节点流和处理流 二、IO流的四大抽象类: 字符流:Reader Writer 字节流:InputStream(读数据) OutputStream(写数据) 三、缓冲流:缓冲流要套接在相应的节点流之上,提高了读写的效率。 此处理流的构造方法都得传相对应的

u011532797的专栏 613
上一篇: 黑马程序员_Java学习日记11_常用类
下一篇: 黑马程序员_Java学习日记13_IO流2
cdestiny
博客等级 码龄14年 12粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值