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
能够与任意一个已安装的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盘.的主要内容,如果未能解决你的问题,请参考以下文章
我的usb设备总是会被识别为libusb-win32 devices