- 浏览: 142586 次
- 性别:
- 来自: 深圳
-
最新评论
-
freesea:
不错,还没注意java 7已经增加了这么多类了
[NIO.2] 第十篇 NIO.2 中的文件属性 -
SpringJava:
有个问题,想请教一下楼主:在代码中经常看到try catch语 ...
[NIO.2] 第二十九篇 删除、复制、移动目录和文件 -
xiaohu7924:
高
什么是 Java ? -
jiiming:
这种方法可以借鉴
[Java EE 7] Servlet 异步支持 -
cucaracha:
jahu 写道有中文文档没有啊。请留意我的博客:http:// ...
Java EE 7 技术一览
删除、拷贝和移动操作是最常见的文件操作。NIO.2 提供了独立的方法来支持这些操作。它们中的大部分都来自 Files 类。
删除文件和目录
NIO.2 提供了两个方法来删除文件和目录,分别是 Files.delete() 和 Files.deleteIfExits()。这两个方法都接受一个 Path 类型的参数用于指定删除对象。不同的是,Files.delete() 的返回值是 void,而 Files.deleteIfExits() 的返回值是 boolean。
Files.delete() 方法试图删除传入的 Path 对象,如果删除失败,则有可能抛出下面的异常:NoSuchFileException (如果传入的 Path 文件/目录不存在),DirectoryNotEmptyException (如果传入的 Path 对象是一个目录,并且目录不为空),IOException (如果发生 I/O 异常), SecurityException (如果没有权限进行删除操作)。
下面的代码段将删除 C:\rafaelnadal\photos\ 目录下的 rafa_1.jpg 文件(文件必须存在)。
如果使用 Files.deleteIfExists() 删除文件,文件必须存在,否则会返回 false(用于取代抛出 NoSuchFileException 异常)。这在多线程的环境下删除文件很有用,因为你可能会不希望线程中抛出异常。
下面的代码同样会删除 rafa_1.jpg 文件:
注:如果要删除目录,那么目录必须为空,否则需要先进行递归删除目录下的所有内容。
复制文件和目录
复制是 NIO.2 提供的最美妙的方法之一。NIO.2 一共提供了三个 copy() 方法来完成这个任务,并且提供了一组选项来控制复制过程。copy() 方法是用非定长参数来接受这些选项。这些选项保存在 StandardCopyOption 和 LinkOption 枚举类型中,如下所示:
如果你对枚举类型不熟,那么你可以使用下面的静态导入方式导入到你的类中:
注:默认情况下,如果被复制的文件是软连接,那么复制的将会是目标文件,只有使用了 REPLACE_EXISTING 和 NOFOLLOW_LINKS 选项才会赋值软链接本身。另外,文件属性默认不会被复制。
注意:试图复制一个非空目录最终会得到一个空目录。非空目录的复制需要进行递归复制下面的子目录和文件。另外,赋值文件的操作并不是一个原子操作,因此有可能会发生 IOException 或者赋值过程被打断的情况。
在两个 Path 对象之间复制
NIO.2 提供了 copy() 方法进行拷贝,它接受两个 Path 对象用于指定源文件和目标文件,还有一组用于控制复制过程的参数。返回目标文件 Path。默认情况下,若目标文件已存在,复制会失败。
下面的代码将会复制 draw_template.txt 文件(文件必须存在),从 C:\rafaelnadal\grandslam\AustralianOpen 复制到 C:\rafaelnadal\grandslam\USOpen。它将替换已有文件,并且会复制文件属性,不支持软链接。
从输入流复制到文件
可以调用 Files.copy() 方法从输入流复制到文件,这个方法会返回读取或写出的字节数。默认情况下,如果目标文件已经存在,则复制失败。
下面代码段将使用输入流将文件 draw_template.txt 从 C:\rafaelnadal\grandslam\AustralianOpen 复制到 C:\rafaelnadal\grandslam\Wimbledon 并替换已有文件。
输入流可以通过另外的途径获得,例如,下面的代码将会从 URL 获取输入流,并复制到 C:\rafaelnadal\photos 目录下(使用默认选项,文件必须不存在):
复制文件到输出流
可以调用 Files.copy() 方法从文件复制到输出流,这个方法会返回读取或写出的字节数。
下面的代码会将文件 draw_template.txt 从 C:\rafaelnadal\grandslam\AustralianOpen 复制到 C:\rafaelnadal\grandslam\RolandGarros,复制过程使用输出流(如果目标文件存在,则会被覆盖)。
移动文件和目录
可以使用 Files.move() 方法来移动文件,这个方法接受两个 Path 类型对象,分别表示源文件和目标文件。并接受一组可选的参数,用于控制移动过程。这些参数存在在 StandardCopyOption 枚举类型中:
REPLACE_EXISTING - 如果目标文件已经存在,则会被覆盖;如果操作的是软连接,那么软链接将会被替换并且指向的目标文件不变。
ATOMIC_MOVE - 保证文件移动的原子性,这将保证任何任何监控文件目录的操作都将访问到完整的文件。
默认情况下,如果目标文件已经存在,移动将会失败。当移动软链接时,移动的是软链接本身而非目标文件。
下面的代码将会移动 rafa_2.jpg 文件,从 C:\rafaelnadal 到 C:\rafaelnadal\photos,如果文件存在,则会覆盖,因为使用了 REPLACE_EXISTING 选项:
你可以使用 Path.resolve() 方法来避免文件名硬编码。下面的代码演示从源文件提取文件名并移动到目标目录下:
重命名文件
最后,演示一下如何使用 Files.move() 和 Path.resolveSibling() 方法对文件进行重命名。下面的代码将 rafa_2.jpg 重命名为 rafa_renamed_2.jpg:
文章来源:http://www.aptusource.org/2014/04/nio-2-delete-copy-move-files/
删除文件和目录
NIO.2 提供了两个方法来删除文件和目录,分别是 Files.delete() 和 Files.deleteIfExits()。这两个方法都接受一个 Path 类型的参数用于指定删除对象。不同的是,Files.delete() 的返回值是 void,而 Files.deleteIfExits() 的返回值是 boolean。
Files.delete() 方法试图删除传入的 Path 对象,如果删除失败,则有可能抛出下面的异常:NoSuchFileException (如果传入的 Path 文件/目录不存在),DirectoryNotEmptyException (如果传入的 Path 对象是一个目录,并且目录不为空),IOException (如果发生 I/O 异常), SecurityException (如果没有权限进行删除操作)。
下面的代码段将删除 C:\rafaelnadal\photos\ 目录下的 rafa_1.jpg 文件(文件必须存在)。
Path path = FileSystems.getDefault().getPath("C:/rafaelnadal/photos", "rafa_1.jpg"); //delete the file try { Files.delete(path); } catch (NoSuchFileException | DirectoryNotEmptyException | IOException | SecurityException e) { System.err.println(e); }
如果使用 Files.deleteIfExists() 删除文件,文件必须存在,否则会返回 false(用于取代抛出 NoSuchFileException 异常)。这在多线程的环境下删除文件很有用,因为你可能会不希望线程中抛出异常。
下面的代码同样会删除 rafa_1.jpg 文件:
try { boolean success = Files.deleteIfExists(path); System.out.println("Delete status: " + success); } catch (DirectoryNotEmptyException | IOException | SecurityException e) { System.err.println(e); }
注:如果要删除目录,那么目录必须为空,否则需要先进行递归删除目录下的所有内容。
复制文件和目录
复制是 NIO.2 提供的最美妙的方法之一。NIO.2 一共提供了三个 copy() 方法来完成这个任务,并且提供了一组选项来控制复制过程。copy() 方法是用非定长参数来接受这些选项。这些选项保存在 StandardCopyOption 和 LinkOption 枚举类型中,如下所示:
- REPLACE_EXISTING - 如果文件已经存在,则会被替换(如果复制的是非空目录,则会抛出 FileAlreadyExistsException 异常);如果复制的是软链接,则只是复制软链接本身,而不会复制目标文件。
- COPY_ATTRIBUTES - 赋值文件并且连同文件属性(至少会有 lastModifiedTime 属性支持复制)。
- NOFOLLOW_LINKS - 不考虑软链接目标文件,只考虑软链接自身。
如果你对枚举类型不熟,那么你可以使用下面的静态导入方式导入到你的类中:
import static java.nio.file.StandardCopyOption.REPLACE_EXISTING; import static java.nio.file.StandardCopyOption.COPY_ATTRIBUTES; import static java.nio.file.LinkOption.NOFOLLOW_LINKS;
注:默认情况下,如果被复制的文件是软连接,那么复制的将会是目标文件,只有使用了 REPLACE_EXISTING 和 NOFOLLOW_LINKS 选项才会赋值软链接本身。另外,文件属性默认不会被复制。
注意:试图复制一个非空目录最终会得到一个空目录。非空目录的复制需要进行递归复制下面的子目录和文件。另外,赋值文件的操作并不是一个原子操作,因此有可能会发生 IOException 或者赋值过程被打断的情况。
在两个 Path 对象之间复制
NIO.2 提供了 copy() 方法进行拷贝,它接受两个 Path 对象用于指定源文件和目标文件,还有一组用于控制复制过程的参数。返回目标文件 Path。默认情况下,若目标文件已存在,复制会失败。
下面的代码将会复制 draw_template.txt 文件(文件必须存在),从 C:\rafaelnadal\grandslam\AustralianOpen 复制到 C:\rafaelnadal\grandslam\USOpen。它将替换已有文件,并且会复制文件属性,不支持软链接。
Path copy_from = Paths.get("C:/rafaelnadal/grandslam/AustralianOpen", "draw_template.txt"); Path copy_to= Paths.get("C:/rafaelnadal/grandslam/USOpen",copy_from.getFileName().toString()); try { Files.copy(copy_from, copy_to, REPLACE_EXISTING, COPY_ATTRIBUTES, NOFOLLOW_LINKS); } catch (IOException e) { System.err.println(e); }
从输入流复制到文件
可以调用 Files.copy() 方法从输入流复制到文件,这个方法会返回读取或写出的字节数。默认情况下,如果目标文件已经存在,则复制失败。
下面代码段将使用输入流将文件 draw_template.txt 从 C:\rafaelnadal\grandslam\AustralianOpen 复制到 C:\rafaelnadal\grandslam\Wimbledon 并替换已有文件。
Path copy_from = Paths.get("C:/rafaelnadal/grandslam/AustralianOpen", "draw_template.txt"); Path copy_to = Paths.get("C:/rafaelnadal/grandslam/Wimbledon", "draw_template.txt"); try (InputStream is = new FileInputStream(copy_from.toFile())) { Files.copy(is, copy_to, REPLACE_EXISTING); } catch (IOException e) { System.err.println(e); }
输入流可以通过另外的途径获得,例如,下面的代码将会从 URL 获取输入流,并复制到 C:\rafaelnadal\photos 目录下(使用默认选项,文件必须不存在):
Path copy_to = Paths.get("C:/rafaelnadal/photos/rafa_winner_2.jpg"); URI u = URI.create("https://lh6.googleusercontent.com/-- udGIidomAM/Tl8KTbYd34I/AAAAAAAAAZw/j2nH24PaZyM/s800/rafa_winner.jpg"); try (InputStream in = u.toURL().openStream()) { Files.copy(in, copy_to); } catch (IOException e) { System.err.println(e); }
复制文件到输出流
可以调用 Files.copy() 方法从文件复制到输出流,这个方法会返回读取或写出的字节数。
下面的代码会将文件 draw_template.txt 从 C:\rafaelnadal\grandslam\AustralianOpen 复制到 C:\rafaelnadal\grandslam\RolandGarros,复制过程使用输出流(如果目标文件存在,则会被覆盖)。
Path copy_from = Paths.get("C:/rafaelnadal/grandslam/AustralianOpen", "draw_template.txt"); Path copy_to = Paths.get("C:/rafaelnadal/grandslam/RolandGarros", "draw_template.txt"); try (OutputStream os = new FileOutputStream(copy_to.toFile())) { Files.copy(copy_from, os); } catch (IOException e) { System.err.println(e); }
移动文件和目录
可以使用 Files.move() 方法来移动文件,这个方法接受两个 Path 类型对象,分别表示源文件和目标文件。并接受一组可选的参数,用于控制移动过程。这些参数存在在 StandardCopyOption 枚举类型中:
REPLACE_EXISTING - 如果目标文件已经存在,则会被覆盖;如果操作的是软连接,那么软链接将会被替换并且指向的目标文件不变。
ATOMIC_MOVE - 保证文件移动的原子性,这将保证任何任何监控文件目录的操作都将访问到完整的文件。
默认情况下,如果目标文件已经存在,移动将会失败。当移动软链接时,移动的是软链接本身而非目标文件。
下面的代码将会移动 rafa_2.jpg 文件,从 C:\rafaelnadal 到 C:\rafaelnadal\photos,如果文件存在,则会覆盖,因为使用了 REPLACE_EXISTING 选项:
Path movefrom = FileSystems.getDefault().getPath("C:/rafaelnadal/rafa_2.jpg"); Path moveto = FileSystems.getDefault().getPath("C:/rafaelnadal/photos/rafa_2.jpg"); try { Files.move(movefrom, moveto, StandardCopyOption.REPLACE_EXISTING); } catch (IOException e) { System.err.println(e); }
你可以使用 Path.resolve() 方法来避免文件名硬编码。下面的代码演示从源文件提取文件名并移动到目标目录下:
Path movefrom = FileSystems.getDefault().getPath("C:/rafaelnadal/rafa_2.jpg"); Path moveto_dir = FileSystems.getDefault().getPath("C:/rafaelnadal/photos"); try { Files.move(movefrom, moveto_dir.resolve(movefrom.getFileName()), StandardCopyOption.REPLACE_EXISTING); } catch (IOException e) { System.err.println(e); }
重命名文件
最后,演示一下如何使用 Files.move() 和 Path.resolveSibling() 方法对文件进行重命名。下面的代码将 rafa_2.jpg 重命名为 rafa_renamed_2.jpg:
Path movefrom = FileSystems.getDefault().getPath("C:/rafaelnadal/photos/rafa_2.jpg"); try { Files.move(movefrom, movefrom.resolveSibling("rafa_2_renamed.jpg"), StandardCopyOption.REPLACE_EXISTING); } catch (IOException e) { System.err.println(e); }
文章来源:http://www.aptusource.org/2014/04/nio-2-delete-copy-move-files/
评论
1 楼
SpringJava
2014-08-28
有个问题,想请教一下楼主:
在代码中经常看到try catch语句:
请问这个是Java1.8的新语法吗?还是误写??
在代码中经常看到try catch语句:
try (InputStream is = new FileInputStream(copy_from.toFile())) { Files.copy(is, copy_to, REPLACE_EXISTING); } catch (IOException e) { System.err.println(e); }
请问这个是Java1.8的新语法吗?还是误写??
发表评论
-
[NIO.2] 第四十一篇 随机访问文件概述
2014-04-29 14:51 1856我们已经看过很多顺序读取文件的例子,文件除了可以被顺序读取,还 ... -
[NIO.2] 第四十篇 监控目录树
2014-04-29 14:49 2124现在,我们编写一个应用来监控 C:\rafaelnadal 目 ... -
[NIO.2] 第三十九篇 实现文件监控服务
2014-04-26 16:13 3739要实现监控服务需要有几个步骤。在本文中,你将会看到实现监控服务 ... -
[NIO.2] 第三十八篇 监控服务 API
2014-04-21 14:13 2061Java 7 NIO.2 引入了线程安全的监控服务,用于监控对 ... -
[NIO.2] 第三十七篇 编写一个文件移动应用
2014-04-18 14:20 1391移动文件分为两个步骤,先拷贝文件,再删除源文件。 下面的代码 ... -
[NIO.2] 第三十六篇 编写一个文件拷贝应用
2014-04-18 14:18 1499拷贝目录树的时候,需要为文件和目录递归调用 Files.cop ... -
[NIO.2] 第三十五篇 编写一个文件删除应用
2014-04-17 18:22 1905如果要删除单个文件,可以直接调用 delete() 或 del ... -
[NIO.2] 第三十四篇 编写一个文件搜索应用
2014-04-14 15:39 1534大多数操作系统都提供了独立的工具用于文件搜索(例如,Linux ... -
[NIO.2] 第三十三篇 遍历目录树
2014-04-14 15:35 2470一旦你创建了遍历机制(实现 FileVisitor 接口或继承 ... -
[NIO.2] 第三十二篇 SimpleFileVisitor 类
2014-04-12 15:57 2082要实现 FileVisitor 接口就要实现接口上的所有方法, ... -
[NIO.2] 第三十一篇 FileVisitor 接口
2014-04-12 15:53 3276FileVisitor 接口提供了递归遍历文件树的支持。这个接 ... -
[NIO.2] 第三十篇 递归操作简述
2014-04-12 15:46 1103你可能知道,在编程中使用递归技术一直有争议,但是它的确简化了一 ... -
[NIO.2] 第二十八篇 创建临时目录和文件
2014-04-09 13:59 4594临时目录是用于存储临时文件的目录。临时目录的位置依赖操作系统。 ... -
[NIO.2] 第二十七篇 新建、读取和写出文件
2014-04-07 20:09 4250对文件来说,可能最常用的操作就是创建、读取和写出。NIO.2 ... -
[NIO.2] 第二十六篇 创建目录以及列出目录内容
2014-04-07 12:14 2553列出文件系统根目录 在 Java 6 中,获取根目录是通过 ... -
[NIO.2] 第二十五篇 文件及目录的校验
2014-04-05 16:26 1934在对文件或目录进行操 ... -
[NIO.2] 第二十四篇 定位链接所指向的目标文件位置
2014-04-03 18:30 1082调用 Files.readSymbolicLink() 方法可 ... -
[NIO.2] 第二十三篇 检验软链接
2014-04-03 12:12 1797Path 对象可能表示文件或链接。如果 Path 对象指向软链 ... -
[NIO.2] 第二十二篇 创建硬链接
2014-04-03 00:11 1936可以调用 createLink() 方法创建硬链接,它将会创建 ... -
[NIO.2] 第二十一篇 创建软链接
2014-04-02 18:35 3290在 NIO.2 中,创建软链接非常简单,只需要调用 Files ...
相关推荐
9. **文件与IO流**:第九章将进一步深入I/O流,讲解文件操作,如复制、移动和删除,以及高级IO流(如NIO)。 10. **反射与注解**:第十章会讲解Java反射机制,允许程序在运行时动态地获取类的信息并操作类的对象。...
17. **Files类的常用方法**:Files是java.nio.file包中的类,提供了文件操作的常用方法,如exists()检查文件是否存在,readAllBytes()读取文件的所有字节,delete()删除文件,copy()复制文件,move()移动文件等。...
- `LinkedList` 基于双向链表实现,适用于频繁插入和删除的场景。 8. **`String`、`StringBuffer` 与 `StringBuilder` 的区别**: - `String` 是不可变的字符串类。 - `StringBuffer` 和 `StringBuilder` 都是可...
7.1 文件操作:File类用于文件和目录的创建、删除、重命名等。 7.2 字节流与字符流:InputStream/OutputStream处理原始字节,Reader/Writer处理字符编码。 7.3 缓冲流:提高读写效率,如BufferedReader、...
全国大学生智能汽车竞赛自2006年起,由教育部高等教育司委托高等学校自动化类教学指导委员会举办,旨在加强学生实践、创新能力和培养团队精神的一项创意性科技竞赛。该竞赛至今已成功举办多届,吸引了众多高校学生的积极参与,此文件为智能车竞赛介绍
字卡v4.3.4 原版 三种UI+关键字卡控制+支持获取用户信息+支持强制关注 集卡模块从一开始的版本到助力版本再到现在的新规则版本。 集卡模块难度主要在于 如何控制各种不同的字卡组合 被粉丝集齐的数量。 如果不控制那么一定会出现超过数量的粉丝集到指定的字卡组合,造成奖品不够的混乱,如果大奖价值高的话,超过数量的粉丝集到大奖后,就造成商家的活动费用超支了。我们冥思苦想如何才能限制集到指定字卡组合的粉丝数,后我们想到了和支付宝一样的选一张关键字卡来进行规则设置的方式来进行限制,根据奖品所需的关键字卡数,设定规则就可以控制每种奖品所需字卡组合被粉丝集到的数量,规则可以在活动进行中根据需要进行修改,活动规则灵活度高。新版的集卡规则,在此次政府发布号的活动中经受了考验,集到指定字卡组合的粉丝没有超出规则限制。有了这个规则限制后,您无需盯着活动,建好活动后就无人值守让活动进行就行了,您只需要时不时来看下蹭蹭上涨的活动数据即可。 被封? 无需担心,模块内置有防封功能,支持隐藏主域名,显示炮灰域名,保护活动安全进行。 活动准备? 只需要您有一个认证服务号即可,支持订阅号借用认证服务号来做活动。如果您
出口设备线体程序详解:PLC通讯下的V90控制与开源FB284工艺对象实战指南,出口设备线体程序详解:PLC通讯与V90控制集成,工艺对象与FB284协同工作,开源学习V90控制技能,出口设备1200线体程序,多个plc走通讯,内部有多个v90,采用工艺对象与fb284 共同控制,功能快全部开源,能快速学会v90的控制 ,出口设备; 1200线体程序; PLC通讯; 多个V90; 工艺对象; FB284; 功能开源; V90控制。,V90工艺控制:开源功能快,快速掌握1200线体程序与PLC通讯
基于Arduino与DAC8031的心电信号模拟器资料:心电信号与正弦波的双重输出应用方案,Arduino与DAC8031心电信号模拟器:生成心电信号与正弦波输出功能详解,基于arduino +DAC8031的心电信号模拟器资料,可输出心电信号,和正弦波 ,基于Arduino;DAC8031;心电信号模拟器;输出心电信号;正弦波输出;模拟器资料,基于Arduino与DAC8031的心电信号模拟器:输出心电与正弦波
MATLAB口罩检测的基本流程 图像采集:通过摄像头或其他图像采集设备获取包含面部的图像。 图像预处理:对采集到的图像进行灰度化、去噪、直方图均衡化等预处理操作,以提高图像质量,便于后续的人脸检测和口罩检测。 人脸检测:利用Haar特征、LBP特征等经典方法或深度学习模型(如MTCNN、FaceBoxes等)在预处理后的图像中定位人脸区域。 口罩检测:在检测到的人脸区域内,进一步分析是否佩戴口罩。这可以通过检测口罩的边缘、纹理等特征,或使用已经训练好的口罩检测模型来实现。 结果输出:将检测结果以可视化方式展示,如在图像上标注人脸和口罩区域,或输出文字提示是否佩戴口罩。
1、文件内容:kernel-debug-devel-3.10.0-1160.119.1.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/kernel-debug-devel-3.10.0-1160.119.1.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、更多资源/技术支持:公众号禅静编程坊
该文档提供了一个关于供应链管理系统开发的详细指南,重点介绍了项目安排、技术实现和框架搭建的相关内容。 文档分为以下几个关键部分: 项目安排:主要步骤包括搭建框架(1天),基础数据模块和权限管理(4天),以及应收应付和销售管理(5天)。 供应链概念:供应链系统的核心流程是通过采购商品放入仓库,并在销售时从仓库提取商品,涉及三个主要订单:采购订单、销售订单和调拨订单。 大数据的应用:介绍了数据挖掘、ETL(数据抽取)和BI(商业智能)在供应链管理中的应用。 技术实现:讲述了DAO(数据访问对象)的重用、服务层的重用、以及前端JS的继承机制、jQuery插件开发等技术细节。 系统框架搭建:包括Maven环境的配置、Web工程的创建、持久化类和映射文件的编写,以及Spring配置文件的实现。 DAO的需求和功能:供应链管理系统的各个模块都涉及分页查询、条件查询、删除、增加、修改操作等需求。 泛型的应用:通过示例说明了在Java语言中如何使用泛型来实现模块化和可扩展性。 文档非常技术导向,适合开发人员参考,用于构建供应链管理系统的架构和功能模块。
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
C#与VB实现欧姆龙PLC的Fins TCP通信案例源码:调用动态链接库进行数据读写,定时器与计数器数据区的简洁读写操作示例,C#与VB实现欧姆龙PLC的Fins TCP通信案例源码:调用动态链接库进行读写操作,涵盖定时器计数器数据区学习案例,C#欧姆龙plc Fins Tcp通信案例上位机源码,有c#和VB的Demo,c#上位机和欧姆龙plc通讯案例源码,调用动态链接库,可以实现上位机的数据连接,可以简单实现D区W区定时器计数器等数据区的读写,是一个非常好的学习案例 ,C#; 欧姆龙PLC; Fins Tcp通信; 上位机源码; 动态链接库; 数据连接; D区W区读写; 定时器计数器; 学习案例,C#实现欧姆龙PLC Fins Tcp通信上位机源码,读写数据区高效学习案例
可调谐石墨烯超材料吸收体的FDTD仿真模拟研究报告:吸收光谱的化学势调节策略与仿真源文件解析,可调谐石墨烯超材料吸收体:化学势调节光谱的FDTD仿真模拟研究,可调谐石墨烯超材料吸收体FDTD仿真模拟 【案例内容】该案例提供了一种可调谐石墨烯超材料吸收体,其吸收光谱可以通过改变施加于石墨烯的化学势来进行调节。 【案例文件】仿真源文件 ,可调谐石墨烯超材料吸收体; FDTD仿真模拟; 化学势调节; 仿真源文件,石墨烯超材料吸收体:FDTD仿真调节吸收光谱案例解析
RBF神经网络控制仿真-第二版
松下PLC与威纶通触摸屏转盘设备控制:FPWINPRO7与EBPRO智能编程与宏指令应用,松下PLC与威纶通触摸屏转盘设备控制解决方案:FPWINPRO7与EBPRO协同工作,实现多工位转盘加工与IEC编程模式控制,松下PLC+威纶通触摸屏的转盘设备 松下PLC工程使用程序版本为FPWINPRO7 7.6.0.0版本 威纶通HMI工程使用程序版本为EBPRO 6.07.02.410S 1.多工位转盘加工控制。 2.国际标准IEC编程模式。 3.触摸屏宏指令应用控制。 ,松下PLC; 威纶通触摸屏; 转盘设备控制; 多工位加工控制; IEC编程模式; 触摸屏宏指令应用,松下PLC与威纶通HMI联控的转盘设备控制程序解析
基于循环神经网络(RNN)的多输入单输出预测模型(适用于时间序列预测与回归分析,需Matlab 2021及以上版本),基于循环神经网络(RNN)的多输入单输出预测模型(matlab版本2021+),真实值与预测值对比,多种评价指标与线性拟合展示。,RNN预测模型做多输入单输出预测模型,直接替数据就可以用。 程序语言是matlab,需求最低版本为2021及以上。 程序可以出真实值和预测值对比图,线性拟合图,可打印多种评价指标。 PS:以下效果图为测试数据的效果图,主要目的是为了显示程序运行可以出的结果图,具体预测效果以个人的具体数据为准。 2.由于每个人的数据都是独一无二的,因此无法做到可以任何人的数据直接替就可以得到自己满意的效果。 这段程序主要是一个基于循环神经网络(RNN)的预测模型。它的应用领域可以是时间序列预测、回归分析等。下面我将对程序的运行过程进行详细解释和分析。 首先,程序开始时清空环境变量、关闭图窗、清空变量和命令行。然后,通过xlsread函数导入数据,其中'数据的输入'和'数据的输出'是两个Excel文件的文件名。 接下来,程序对数据进行归一化处理。首先使用ma
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
旅游管理系统中的功能模块主要是实现管理员;首页、个人中心、用户管理、旅游方案管理、旅游购买管理、系统管理,用户;首页、个人中心、旅游方案管理、旅游购买管理、我的收藏管理。前台首页;首页、旅游方案、旅游资讯、个人中心、后台管理等功能。经过认真细致的研究,精心准备和规划,最后测试成功,系统可以正常使用。分析功能调整与旅游管理系统实现的实际需求相结合,讨论了Java开发旅游管理系统的使用。 从上面的描述中可以基本可以实现软件的功能: 1、开发实现旅游管理系统的整个系统程序; 2、管理员;首页、个人中心、用户管理、旅游方案管理、旅游购买管理、系统管理等。 3、用户:首页、个人中心、旅游方案管理、旅游购买管理、我的收藏管理。 4、前台首页:首页、旅游方案、旅游资讯、个人中心、后台管理等相应操作; 5、基础数据管理:实现系统基本信息的添加、修改及删除等操作,并且根据需求进行交流查看及回复相应操作。
Boost二级升压光伏并网结构的Simulink建模与MPPT最大功率点追踪:基于功率反馈的扰动观察法调整电压方向研究,Boost二级升压光伏并网结构的Simulink建模与MPPT最大功率点追踪:基于功率反馈的扰动观察法调整电压方向研究,Boost二级升压光伏并网结构,Simulink建模,MPPT最大功率点追踪,扰动观察法采用功率反馈方式,若ΔP>0,说明电压调整的方向正确,可以继续按原方向进行“干扰”;若ΔP<0,说明电压调整的方向错误,需要对“干扰”的方向进行改变。 ,Boost升压;光伏并网结构;Simulink建模;MPPT最大功率点追踪;扰动观察法;功率反馈;电压调整方向。,光伏并网结构中Boost升压MPPT控制策略的Simulink建模与功率反馈扰动观察法