java基础io流——字符流的变革(深入浅出)

快手did did_gt edid的注册过程 接口 https://gdfp.ksapisrv.com/rest/infra/gdfp/report/kuaishou/android did 是本地生成的16进制 或者 获取的 android_id did_gt 是did生成时间戳 1595073601970 public static final Random f16237a = new Random(System.currentTimeMillis()); public static long m19668a() {  &n 阅读详情

osw.close();//close包含了close和flush的作用

一般默认编码就够了。

查看源码,发现OutputStreamWriter有5个write方法。

/*

  • OutputStreamWriter的方法:

  • public void write(int c):写一个字符

  • public void write(char[] cbuf):写一个字符数组

  • public void write(char[] cbuf,int off,int len):写一个字符数组的一部分

  • public void write(String str):写一个字符串

  • public void write(String str,int off,int len):写一个字符串的一部分

  • 面试题:close()和flush()的区别?

  • A:close()关闭流对象,但是先刷新一次缓冲区。关闭之后,流对象不可以继续再使用了。

  • B:flush()仅仅刷新缓冲区,刷新之后,流对象还可以继续使用。

*/

OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(“c.txt”));//查看源码,java8 默认utf-8

//写一个字符

osw.write(‘a’);

osw.write(97);

osw.write(‘中’);

// 为什么数据没有进去呢?

// 原因是:字符 = 2字节

// 文件中数据存储的基本单位是字节。

// void flush()

osw.flush();

//写一个字符数组

char[] chars = {‘a’,‘b’,‘中’,‘国’};

osw.write(chars);

osw.flush();

//写一个字符数组的一部分

osw.write(chars,2,2);

osw.flush();

//写一个字符串

osw.write(“\n\r中国”);

//写一个字符串的一部分

osw.write(“中国你好”,2,2);

osw.close();

InputStreamReader(InputStream is):用默认的编码读取数据,默认utf-8

InputStreamReader(InputStream is,String charsetName):

用指定的编码读取数据

//创建对象

InputStreamReader isr = new InputStreamReader(new FileInputStream(“b.txt”));//默认编码utf-8

InputStreamReader isr1 = new InputStreamReader(new FileInputStream(“b.txt”),“gbk”);//可指定编码

//读数据

int ch = 0;

while ((ch = isr.read()) != -1) {

System.out.print((char)ch);//中国

}

//释放资源

isr.close();

//只有文档的编码和读取的编码一致才不会乱码。

查看源码知道InputStreamReader有2个read方法。

/*

  • InputStreamReader的方法:

  • int read():一次读取一个字符

  • int read(char[] chs):一次读取一个字符数组

*/

InputStreamReader isr = new InputStreamReader(new FileInputStream(“c.txt”));

//读一个字符

// int ch = 0;

// while ((ch = isr.read()) != -1) {

// System.out.print((char) ch);//9797200139798200132226920013222691020013222692032022909/

// //aa中ab中国中国

// //中国你好

// }

//isr.close();

//读一个字符数组

char[] chars =new char[1024];

int len = 0;

while ((len = isr.read(chars)) != -1) {

System.out.println(chars.length);//1024

System.out.println(new String(chars,0,len));

//aa中ab中国中国

//中国你好

}

isr.close();

现在我们可以通过转换流升级字节流复制文件的方式了。

InputStreamReader isr = new InputStreamReader(new FileInputStream(“a.txt”));

OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(“e:\a.txt”));

char [] chars = new char[1024];

int len = 0 ;

while ((len = isr.read(chars)) != -1) {

osw.write(chars,0,len);

osw.flush();

}

osw.close();

isr.close();

字符流的诞生:

转换流已经是字符流了,但是他们的名字太长了,Java就提供了其子类供我们使用。

FileWriter 、FileReader 继承了其父类的所有方法。

字符流=字节流+编码表

OutputStreamWriter = FileOutputStream + 编码表(GBK)

FileWriter = FileOutputStream + 编码表(GBK)

InputStreamReader = FileInputStream + 编码表(GBK)

FileReader = FileInputStream + 编码表(GBK)

复制改写:

FileWriter fw = new FileWriter(“e:\b.txt”);

FileReader fr = new FileReader(“b.txt”);

char[] chars =new char[1024];

int len = 0;

while ((len = fr.read(chars)) != -1) {

fw.write(chars,0,len);

fw.flush();

}

fw.close();

fr.close();

/**

  • 总结,到现在为止,加上字节流,复制文本的方式有8种,但是复制图片视频等文件只有四种字节流的方式,因为不能用字符流复制图片视频mp3等

*/

字符流学习前辈字节流的经验,也设计了字符缓冲流。

BufferedReader、

BufferedWriter

和字节缓冲流的设计基本一样,也有两个构造方法,但是我们只要默认的缓冲大小的构造方法就可以了。

用字符缓冲流改写复制功能:

BufferedReader br = new BufferedReader(new FileReader(“c.txt”));

BufferedWriter bw = new BufferedWriter(new FileWriter(“e:\d.txt”));

char[] chars = new char[1024];

int len = 0 ;

while ((len = br.read(chars)) != -1) {

bw.write(chars,0,len);

bw.flush();

}

br.close();

bw.close();

然而字符缓冲流还有自己特殊的读写功能。

BufferedWriter :void newLine() 换行

BufferedReader :String readLine() 读一行数据

public static void main(String args[]) throws IOException {

// write();

read();

}

private static void read() throws IOException {

BufferedReader br = new BufferedReader(new FileReader(“bw.txt”));

String line = null;

while ((line = br.readLine()) != null) {

System.out.println(line);

//readLine不会读取换行符

//读到末尾返回null

}

br.close();

}

private static void write() throws IOException {

BufferedWriter bw = new BufferedWriter(new FileWriter(“bw.txt”));

for (int i = 0; i <10 ; i++) {

bw.write(“你好哈哈哈哈哈”);

bw.newLine();//换行,并且自动检测不同系统的换行符

bw.flush();

//一般三个连用

}

bw.close();

}

用字符缓冲流的特殊方式升级复制功能:

BufferedReader br = new BufferedReader(new FileReader(“bw.txt”));

BufferedWriter bw = new BufferedWriter(new FileWriter(“e:\bw.txt”));

String line = null;

while ((line = br.readLine()) != null) {

bw.write(line);

bw.newLine();

bw.flush();

}

bw.close();

br.close();

//总结 字符流复制文本有5种方式

字符流的基础基本就聊完了,还有一个比较常用的类LineNumberReader

查看源码可知LineNumberReader继承自BufferedReader,并且增加了行号的操作。

LineNumberReader lnr = new LineNumberReader(new FileReader(“a.txt”));

String line = null;

while ((line = lnr.readLine()) != null) {

System.out.println(lnr.getLineNumber()+“:”+line);

}

1:A

2:S

3:F

但是LineNumberWriter。源码很简单,更多的操作请看源码。

io流总结:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bVWoVKMC-1603815111548)(http://p5kllyq5h.bkt.clouddn.com/read.png)]

java 中文api :

http://tool.oschina.net/apidocs/apidoc?api=jdk-zh

查看api源码,深入理解io设计理念。

io流面试题:

题一:复制单级文件夹

/**

  • 封装

  • 新建文件夹

  • 获得源文件夹下文件列表

  • 复制文件到新文件夹

*/

public class copyFolder {

public static void main(String args[]) throws IOException {

File file1 = new File(“F:\汤包\IT时代\java基础\day21\code\demo”);

File file2 = new File(“e:\demo”);

//判断文件夹是否存在

if (!file2.exists()){

file2.mkdir();

}

//获取源文件夹下文件列表

File[] files = file1.listFiles();

for (File file : files) {

File newfile = new File(file2,file.getName());

copyFun(file,newfile);

}

}

private static void copyFun(File file1,File file2) throws IOException {

BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file1));

BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file2));

byte[] bytes = new byte[1024];

int len = 0;

while ((len = bis.read(bytes)) != -1) {

bos.write(bytes,0,len);

}

bis.close();

bos.close();

}

}

题二:复制多极文件夹

/*

  • 需求:复制多极文件夹

  • 数据源:F:\汤包\IT时代\java基础\day21\code\demos

  • 目的地:E:\

  • 分析:

  •   A:封装数据源File
    
  •   B:封装目的地File
    
  •   C:判断该File是文件夹还是文件
    
  •   	a:是文件夹
    
  •   		就在目的地目录下创建该文件夹
    
  •   		获取该File对象下的所有文件或者文件夹File对象
    
  •   		遍历得到每一个File对象
    
  •   		回到C
    
  •   	b:是文件
    
  •   		就复制(字节流)
    

*/

public class copyFolder2 {

public static void main(String args[]) throws IOException {

File file1 = new File(“F:\汤包\IT时代\java基础\day21\code\demos”);

File file2 = new File(“e:\”);

copyFolder(file1,file2);

}

private static void copyFolder(File srcFile, File destFile) throws IOException {

if (srcFile.isDirectory()){

File newFolder = new File(destFile, srcFile.getName());

newFolder.mkdir();

File[] files = srcFile.listFiles();

for (File file1 : files) {

copyFolder(file1,newFolder);

}

}else {

File newFile = new File(destFile,srcFile.getName());

copyFile(srcFile,newFile);

}

}

private static void copyFile(File file1,File file2) throws IOException {

BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file1));

BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file2));

byte[] bytes = new byte[1024];

int len = 0;

while ((len = bis.read(bytes)) != -1) {

bos.write(bytes,0,len);

}

bis.close();

bos.close();

}

}

复制多级文件夹,构思用到了递归,可知递归真的很重要,之后也会总结一下递归的知识。

题三:键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低打印到控制台。

Student.java

public class Student {

// 姓名

private String name;

// 语文成绩

private int chinese;

// 数学成绩

private int math;

// 英语成绩

private int english;

public Student() {

super();

}

public Student(String name, int chinese, int math, int english) {

super();

this.name = name;

this.chinese = chinese;

this.math = math;

this.english = english;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getChinese() {

return chinese;

}

public void setChinese(int chinese) {

this.chinese = chinese;

}

public int getMath() {

return math;

}

public void setMath(int math) {

this.math = math;

}

public int getEnglish() {

return english;

}

public void setEnglish(int english) {

this.english = english;

}

public int getSum() {

return this.chinese + this.math + this.english;

}

}

StendentDemo.java

/*

  • 键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低存入文本文件

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

完结

Redis基于内存,常用作于缓存的一种技术,并且Redis存储的方式是以key-value的形式。Redis是如今互联网技术架构中,使用最广泛的缓存,在工作中常常会使用到。Redis也是中高级后端工程师技术面试中,面试官最喜欢问的问题之一,因此作为Java开发者,Redis是我们必须要掌握的。

Redis 是 NoSQL 数据库领域的佼佼者,如果你需要了解 Redis 是如何实现高并发、海量数据存储的,那么这份腾讯专家手敲《Redis源码日志笔记》将会是你的最佳选择。

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!
学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**[外链图片转存中…(img-bkIMczVD-1711986449162)]

[外链图片转存中…(img-wigEk3oR-1711986449163)]

[外链图片转存中…(img-XJQnlXhV-1711986449164)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

完结

Redis基于内存,常用作于缓存的一种技术,并且Redis存储的方式是以key-value的形式。Redis是如今互联网技术架构中,使用最广泛的缓存,在工作中常常会使用到。Redis也是中高级后端工程师技术面试中,面试官最喜欢问的问题之一,因此作为Java开发者,Redis是我们必须要掌握的。

Redis 是 NoSQL 数据库领域的佼佼者,如果你需要了解 Redis 是如何实现高并发、海量数据存储的,那么这份腾讯专家手敲《Redis源码日志笔记》将会是你的最佳选择。

[外链图片转存中…(img-lq4Xes7v-1711986449164)]

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!

Workbench中直接调用ICEM CFD进行网格划分 自从ANSYS 12.0之后,ICEM CFD就从Workbench中被分离出去,作为一个独立的程序使用了。取而代之的是Meshing模块。 在Meshing的属性节点菜单中右键点击Mesh,选择Insert > Method,插入方法。 选择需要划分网格的几何体,点击apply。此时Geometry显示为1 Body。 设置Method为MultiZone,如果不设置成这个的话,找不到进入ICEM CFD的入口。如果要划分四面体,可以在Mapped Mesh Type中选择其他类型。 阅读详情

相关推荐

国科大学习资料--机器学习方法与应用(叶齐祥)-期末考试题整理

国科大学习资料–机器学习方法与应用-期末考试题整理 ============================================================================================================================================================================================ =======================================

无名何许人的博客 2829

OSW下载,安装,启动

Download OSW in this note:  OSWatcher (Includes: [Video]) ( Doc ID 301137.1 )  Install and start osw following:  OS Watcher User's Guide ( Doc ID 1531223.1 )

lyp13696402570的博客 1241

华为OD机试 - 进制转换 - 二进制(Python/JS/C/C++ 2024 B卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题。

学Java,找哪吒 892

java io字符流_java基础io——字符流变革深入浅出

乱码导火索:在io里,先诞生了字节,但是字节读取数据会有乱码的问题(读中文会乱码)。比如:FileInputStream fis = new FileInputStream("a.txt");// int by = 0;// while ((by=fis.read() )!= -1) {// System.out.print((char)by...

weixin_39959482的博客 130

Java开源在线考试系统怎么选?从技术选型到落地部署的完整指南

Java开源在线考试系统怎么选?本文从技术选型、核心功能、部署运维、二次开发等维度,梳理了Java开源在线考试系统的选型要点。

麦塔在线考试培训系统 355

大数据 之 Snappy

【代码】大数据 之 Snappy。

zhixingheyi_tian的博客 188

Spring WebFlux 适配达梦新方案|dm‑r2dbc:Netty 异步传输的实验性 R2DBC 驱动

dm‑r2dbc 是面向达梦 DM8 的实验性 R2DBC 驱动,混合架构:Netty 异步网络传输层 + JDBC 驱动协议编解码复用。核心思路:不去逆向达梦私有协议二进制报文,直接复用达梦 JDBC 驱动内部已经成熟的编解码逻辑,通过反射替换 JDBC 内部默认阻塞 Socket 传输实现,替换为 Netty NIO 异步通道,实现真正异步非阻塞网络 IO

jinyuttt的专栏 299

Spring AI RAG管道构建与优化

<think>我们只需要根据给定的内容生成摘要(≤150字)。给定内容较长,但核心是Spring AI RAG管道构建与优化,涉及文档加载、分割、嵌入、存储、检索、生成等。摘要应高度概括。 注意用户要求“根据以下内容,生成≤150字的文章摘要”。内容提供了代码等细节,但摘要需抓住要点。 写出摘要,字数≤150。</think>摘要:本文深入讲解Spring AI RAG管道的构建与优化,涵盖文档加载、分割、嵌入、存储、检索到生成的全程。详细展示了多源文档加载(PDF、网页、JSON)、多种分割策略(按页、

BADAO_LIUMANG_QIZHI的博客 224

41面向对象(高级)-抽象类

当父类的某些方法,需要声明,但是又不确定如何实现时,可以将其声明为抽象方法,那么这个类就是抽象类。

weixin_52770734的博客 380

商超智能运营如何落地?从系统架构到实战避坑的完整技术路径

3. **多端交互展示层**:需覆盖顾客使用的**小程序、APP及H5公众号**,以及员工使用的管理后台。答:在应用层引入**适配器模式**。在项目启动时,应强制要求供应商或自研团队产出**部署文档**(含环境变量清单)和**二次开发文档**(含核心程时序图),确保后续维护不受限于个人。- **多租户插件**:MyBatis Plus的`TenantLineInnerInterceptor`可实现SQL层面的自动拼接`store_id`条件,防止开发者因SQL编写疏漏导致的数据越权。

weixin_56812938的博客 539

Java的AI生成式编程工具落地

针对Oracle数据库操作场景,让AI自动生成MyBatis-plus的CRUD代码,同时适配Oracle特有的JSON_TABLE、XMLTABLE等高级函数语法,避免手写SQL的语法错误。利用AI的全链路生成能力,快速搭建AI问答机器人、智能风控等Java AI应用原型,整合Stanford CoreNLP、Elasticsearch等组件,大幅缩短新业务的落地周期。调试排障阶段‌:把报错堆栈信息直接粘贴给AI,它会结合本地代码上下文定位根因,同时给出可直接运行的修复代码片段,大幅降低Bug排查耗时。

chinalog的专栏 150

电商推返模式的技术架构与系统落地实践

成功的电商推返模式系统,本质是。

weixin_42804741的博客 194

大模型API并发限解析:中科热备多Key轮换工程方案

灾备与数据保护技术实战:CDP持续保护、数据库备份、异地容灾架构等核心技术深度解析。

2501_92899622的博客 334

工控机之static工具类

static工具类是无状态工具集合:删除构造函数禁止实例化;语法允许一个类同时拥有static函数和普通成员变量,但那样它就不是无状态工具类,而是有状态实例类。4. 不要普通成员变量:普通成员变量属于对象实例;单独创建一个管理器类,允许实例化,状态作为普通成员变量;• 工具类(静态类):无状态,ProtocolUtil::xxx();协议转换、校验、格式化;// ✅允许:static成员函数,纯函数,输出仅依赖入参,无副作用。纯工具类:无状态工具集合,只提供公共算法函数,不创建对象、不保存运行时状态。

老赵的博客 211

单片机课程设计-----基于DS1302的电子钟设计.docx

单片机课程设计-----基于DS1302的电子钟设计 第 2 页 共 23 页 单片机课程设计-----基于DS1302的电子钟设计全文共23页,当前为第1页。单片机课程设计-----基于DS1302的电子钟设计全文共23页,当前为第1页。 单片机课程设计-----基于DS1302的电子钟设计全文共23页,当前为第1页。 单片机课程设计-----基于DS1302的电子钟设计全文共23页,当前为第1页。 单片机课程设计 单片机课程设计-----基于DS1302的电子钟设计全文共23页,当前为第2页。单片机课程设计-----基于DS1302的电子钟设计全文共23页,当前为第2页。设计题目:基于DS1302的电子钟设计 单片机课程设计-----基于DS1302的电子钟设计全文共23页,当前为第2页。 单片机课程设计-----基于DS1302的电子钟设计全文共23页,当前为第2页。 系统设计思路 要求能利用试验箱上的DS1302来显示当前时间,日期,并将其显示在数码管和液晶屏上。此设计即液晶上显示年、月、日、时、分、秒、星期,电路包括以下几个部分:单片机、时钟电路、显示电路 各部分说明: 单片机通过输出各种电脉冲信号来驱动控制各部分正常工作。 单片机发送的信号经过显示电路通过译码最终在液晶上显示出来。 系统的主要元件:主芯片:MCS—51单片机 时钟芯片:DS1302 显示器件:LED和LCD(T6963C) 系统工作过程:时间的主要处理过程是在DS1302中完成的。首先对此芯片进行初始化,对其初值进行设置,然后启动芯片工作。芯片会在内部晶振提供的频率下对秒进行加计数并在必要时进位。 CPU会随时对DS1302进行读取数据的操作。在读取了相应的寄存器的值后,CPU将读取的值进行处理,再通过I\O口把数据传入LED和LCD。显示器件在接受到数据后在相应的位置上进行显示。 系统的设计按照系统的工作过程,将CPU相应的I\O口分配给对应的芯片完成相应的控制和数据的传递。简单地可概括为以CPU为中心,将DS1302的时间数据,通过CPU处理后输入到T6963C和LED进行输出显示 单元电路设计 MCS-51单片机系统设计 MCS51核心实验板上的外设电路,使用了单片机的P1口和P3口。P1口和P3口的各个引脚,可以根据需要,用于控制核心板本身的外设器件,也可以通过核心板上面的插针,用于其它的外部控制功能,或者通过通用实验板连接插口,用于通用板的控制。通过改变拨码开关的位置,可以设定P1口和P3口各引脚用于核心板内部或外部。 CPU相应电路原理如图1.2.3所示。 单片机课程设计-----基于DS1302的电子钟设计全文共23页,当前为第3页。单片机课程设计-----基于DS1302的电子钟设计全文共23页,当前为第3页。 单片机课程设计-----基于DS1302的电子钟设计全文共23页,当前为第3页。 单片机课程设计-----基于DS1302的电子钟设计全文共23页,当前为第3页。 图1.2.3 MCS51核心实验板CPU电路原理图 CPU的P1口和P3口分别用拨码开关SW1和SW2来选择它们是用于控制核心板还是外接到连接插口上供通用板使用。当拨码开关某一位处于"ON"的位置时,P1口和P3口对应引脚连接到核心板,否则连接到通用板。全部P0、P1、P2、P3口引脚分别接到一排插针上,可通过排线连接到其它应用电路。 DS1302时钟芯片电路设计 数字时钟电路DS1302位于通用板的 区,电路连接如图1.3.15所示。由于不用备份电源,所以将VCC1和VCC2引脚都连接到数字电源上。 图1.3.15 DS1302数字时钟电路 DS1320的SCLK、IO、/RST引脚分别经一个10KΩ上拉电阻连接到数字电源,同时连接到端子"TSCK"、"TIO"和"TRST"上。用户只要根据自己的设计,将这三个端子连接到单片机对应的引脚,就可以使用DS1302时钟功能。 点阵液晶显示器 选用香港精电公司的QH12864T液晶显示模块,其背面带有控制电路,内置有LCD控制器T6963C。点阵LCD的数据线、地址线、控制线等,在内部已经与单片机扩展总线连接好,如图1.3.7所示。 单片机课程设计-----基于DS1302的电子钟设计全文共23页,当前为第4页。单片机课程设计-----基于DS1302的电子钟设计全文共23页,当前为第4页。 单片机课程设计-----基于DS1302的电子钟设计全文共23页,当前为第4页。 单片机课程设计-----基于DS1302的电子钟设计全文共23页,当前为第4页。 图1.3.7 点阵LCD电路原理 只须根据需要,将单片机的高位地址译码输出,连接到片选信号"LCDCS"端子,就可以得到需要的地址。例如,假定片选信号"LCDCS"连

visionpro案例(零件尺寸测量与显示,硬币统计,骰子点数统计)等

内有如下案例:零件尺寸测量与显示硬币统计骰子点数统计零件孔位数量统计零件瑕疵检测啤酒盖瑕疵检测书签类型检测手机电池正反面识别车牌识别零件孔位矩形标注多目标陶瓷釉面瑕疵检测标注地面裂痕检测标注杂志页排序药物胶囊瑕疵检测VisionPro是康耐视公司开发的一款强大的机器视觉软件,它广泛应用于自动化、生产线检测、质量控制等领域。案例集里涉及到的应用场景,包括零件尺寸测量与显示、硬币统计、骰子点数统计等,都是VisionPro软件在实际工业中的典型应用案例。零件尺寸测量与显示是一个关键的工业应用,通过VisionPro可以实现高精度的尺寸检测,保证零件的合格率,为生产过程的质量控制提供准确的数据支持。使用VisionPro可以对零件的关键尺寸进行自动测量,并实时显示测量结果,极大提高了生产效率。硬币统计作为另一种应用场景,通常用于自动售货机或者银行的硬币处理系统中。VisionPro能够识别不同面额的硬币,并进行精确计数,对于提高金融设备的处理速度和准确性具有重要作用。骰子点数统计则更多应用在游戏、娱乐行业,通过机器视觉技术可以快速准确地识别骰子的点数,为游戏规则的执行提供技术支持。VisionPro在这方面可以实现高准确率的识别,确保游戏的公正性和趣味性。除了上述场景,VisionPro还能够处理多种复杂的视觉检测任务,例如零件孔位数量统计、零件瑕疵检测、啤酒盖瑕疵检测、书签类型检测、手机电池正反面识别、车牌识别、陶瓷釉面瑕疵检测标注、地面裂痕检测标注、杂志页排序、药物胶囊瑕疵检测等。在零件孔位数量统计方面,VisionPro可以高效识别和计数零件上的孔位数量,确保每个零件都符合设计规范。而零件瑕疵检测则用于识别零件表面和边缘的缺陷,保证零件质量。啤酒盖瑕疵检测、书签类型检测、手机电池正反面识别等应用,都需要精确的视觉识别技术,VisionPro在这些领域有着广泛的应用。例如,在车牌识别中,VisionPro可以快速准确地识别车牌号码和相关信息,应用于停车场管理、交通监控等多个场景。陶瓷釉面瑕疵检测标注和地面裂痕检测标注则是VisionPro在质量控制方面的重要应用,通过对陶瓷产品和地面表面的瑕疵进行自动标注,可以帮助生产人员及时发现并处理生产过程中的问题,提高产品的整体质量。对于杂志页排序和药物胶囊瑕疵检测,VisionPro则可以提供高效率和高准确率的视觉检测解决方案,确保产品在包装和分发过程中的正确性和一致性。VisionPro作为一款成熟的机器视觉软件,在处理多种复杂的视觉识别和检测任务上表现出色。它不仅提高了工业生产的效率和质量,还在交通、娱乐等多个领域发挥着重要作用,是现代工业自动化不可或缺的工具。

上一篇: Java~设计模式之工厂模式与抽象工厂模式
下一篇: Java实现七牛云文件或图片上传下载
youpccc
博客等级 码龄3年 2680粉丝 237原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值