JAVA编程问题,利用 libusb-win32 将一个文件(比如abc.txt)写入 U盘.

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA编程问题,利用 libusb-win32 将一个文件(比如abc.txt)写入 U盘.相关的知识,希望对你有一定的参考价值。

JAVA编程问题,利用 libusb-win32 将一个文件(比如abc.txt)写入 U盘.

请不要使用 java.io.*,java.nio.*.
libusb-win32 是一个类库,用来与USB设备通信的。
http://sourceforge.net/apps/trac/libusb-win32/wiki

LibUSB-Win32是一个用于Windows操作系统(Win98SE、WinME、Win2k和WinXP)上的通用USB设备驱动程序。该驱动程序允许使用者在不写任何一行核心驱动程序代码的情况下,可以访问Windows系统上的任意一个USB设备。该驱动程序具特点:
能够与任意一个已安装的USB设备进行通信
可被用作自己开发的USB设备的驱动程序
支持批量和中断传输
支持USB规范中定义的所有标准设备请求
支持USB设备制造商的自定义请求
通过使用七个函数,就可以与USB设备进行简单通信了,通信的主要流程可分为以下四步:

1) 调用usb_init函数,进行初始化。
2) 打开要进行通信的USB设备的句柄。首先依次调用usb_find_busses、usb_find_devices和usb_get_busses这三个函数,获得已找到的USB总线序列;然后通过链表遍历所有的USB设备,根据已知的要打开USB设备的ID(VID/PID),找到相应的USB设备;最后调用usb_open函数打开该USB设备(在这里假设总线上没有相同VID和PID的USB设备。如果总线上存在着相同VID和PID的设备,还需要进行其他条件判断,比如设备名称,以保证是打开的是期望的USB设备)。
3) 与USB设备进行通信。使用usb_control_msg函数,向USB设备读取数据或写入数据。
4) 关闭USB设备。完成所有操作后,调用usb_close函数关闭已经打开的USB设备。

具体流程去编程论坛,有清楚流程!
good luck!
参考技术A 为什么一定要用libusb-win32来写文件到U盘?

libusb*的类库是用来操作USB设备的,不仅仅是U盘,所以它的API都是一些底层的设备交互的API,如取设备信息、向设备发送数据等。
而U盘作为一种Mass Storage的USB设备,已经被windows识别并标记为类似硬盘的文件系统,所以正常情况下应该使用操作系统的文件系统API来写文件,也就是java.io.*。
如果想直接用libusb-win32来写文件的话,那么你还得了解U盘的数据传输格式等,很复杂,而且我觉得没有必要呀?

另外,有一个Java封装libusb-win32的类库,即http://libusbjava.sourceforge.net/wp/
不过它也是底层的哟。
参考技术B 这是一个类库吗

libusb-win32 支持win10吗

参考技术A 你说的这个应该是驱动吧?
这方面不用想太多,WIN10系统不会影响硬件正常使用的。
驱动方面的问题,可以通过相关平台自行下载的。
如果有需要,你可以下个腾讯电脑管家试试。
管家提供很多方法都可以对驱动进行管理。

首先,硬件检测内提供驱动安装:
打开腾讯电脑管家。。。。工具箱。。。。硬件检测。。。。驱动安装

如果用不习惯,你还可以通过软件管理下载其他驱动工具:
打开腾讯电脑管家。。。。工具箱。。。。软件管理。。。。宝库内可下载众多资源

以上是关于JAVA编程问题,利用 libusb-win32 将一个文件(比如abc.txt)写入 U盘.的主要内容,如果未能解决你的问题,请参考以下文章

libusb-win32 支持win10吗

libusb-win32 支持win10吗

我的usb设备总是会被识别为libusb-win32 devices

libusb(.NET)开源项目使用小结

如何通过多线程 Java 编程最大限度地利用资源(RAM 和 CPU)?

20220305CHUSEI双目摄像头windows驱动+python+openCV