JAVA编程问题,利用 libusb-win32 将一个文件(比如abc.txt)写入 U盘.
发布网友
发布时间:2022-05-18 20:22
我来回答
共3个回答
热心网友
时间:2023-10-30 23:09
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!
热心网友
时间:2023-10-30 23:09
为什么一定要用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/
不过它也是底层的哟。
热心网友
时间:2023-10-30 23:10
这是一个类库吗