Android 写文件到U盘

作为一名经验丰富的开发者,我将帮助你学习如何在Android设备上将文件写入到U盘中。下面是整个实现过程的流程图:

stateDiagram
    [*] --> 检查U盘是否已连接
    检查U盘是否已连接 --> 检查权限
    检查权限 --> 创建文件
    创建文件 --> 写入数据
    写入数据 --> 关闭文件
    关闭文件 --> [*]

检查U盘是否已连接

在Android设备上,需要使用USB Host模式来连接U盘。因此,首先需要检查设备是否支持USB Host模式,并且检查U盘是否已经连接。

// 检查U盘是否已连接
UsbManager usbManager = (UsbManager) getSystemService(Context.USB_SERVICE);
HashMap<String, UsbDevice> deviceList = usbManager.getDeviceList();

if (deviceList.isEmpty()) {
    // U盘未连接
    return;
} else {
    // U盘已连接
    // 继续下一步
}

检查权限

在AndroidManifest.xml文件中添加以下权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

然后在代码中检查是否已授予文件写入权限:

if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
        != PackageManager.PERMISSION_GRANTED) {
    // 权限未授予,请求权限
    ActivityCompat.requestPermissions(this,
            new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
            STORAGE_PERMISSION_REQUEST_CODE);
} else {
    // 权限已授予,继续下一步
}

创建文件

在U盘上创建一个文件,可以使用Java中的File类和FileOutputStream类来实现。首先获取U盘的根目录,然后创建文件。

// 获取U盘根目录
String usbPath = deviceList.keySet().iterator().next();
File usbRoot = new File(usbPath);

// 创建文件
File file = new File(usbRoot, "test.txt");

写入数据

使用FileOutputStream类将数据写入到文件中。首先创建一个FileOutputStream对象,然后通过调用write方法将数据写入文件中。

try {
    // 创建FileOutputStream对象
    FileOutputStream fos = new FileOutputStream(file);
    
    // 将数据转换为字节数组
    String data = "Hello, World!";
    byte[] bytes = data.getBytes();
    
    // 写入数据
    fos.write(bytes);
    
    // 关闭FileOutputStream对象
    fos.close();
} catch (IOException e) {
    e.printStackTrace();
}

关闭文件

在写入完数据后,需要关闭文件以释放资源。

fos.close();

完成了以上步骤后,你就成功地将文件写入到U盘中了。请记住,在使用U盘之前,需要检查U盘是否已连接,并且确保已获得文件写入权限。

希望这篇文章对你有所帮助,祝你在Android开发的道路上越走越远!