ToBServiceHelper.getInstance().getServiceBinder().pbsCapture(); File dir = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/Pictures/Screenshots"); // 要读取的目录 File[] files = dir.listFiles(); // 获取目录下的所有文件 // 使用最后修改时间来排序文件数组 Arrays.sort(files, new Comparator<File>() { public int compare(File f1, File f2) { return Long.compare(f2.lastModified(), f1.lastModified()); } }); Log.i("Unity", "总共有多少文件: "+files.length); Log.i("Unity", "最后一个文件叫: "+files[0].getName()); byte[] bytes = new byte[(int) files[0].length()]; FileInputStream fileInputStream = new FileInputStream(files[0]); fileInputStream.read(bytes); fileInputStream.close(); String fileDataString = Base64.getEncoder().encodeToString(bytes); /** * 发送截屏数据 */ JSONObject jsondata =new JSONObject(); jsondata.put("opcode",OpCode.Send_Screenshot.getValue()); JSONObject content =new JSONObject(); content.put("pic",fileDataString); jsondata.put("content",content); SocketClientService.sendMessage(jsondata.toString()); files[0].delete();有报错 Attempt to get length of null array
时间: 2024-02-14 09:10:15 浏览: 75
这个报错可能是因为 `dir.listFiles()` 返回了空数组,导致 `files` 为空。你可以在使用 `files` 之前先判断一下它是否为空,例如:
```
if (files != null && files.length > 0) {
// 使用最后修改时间来排序文件数组
Arrays.sort(files, new Comparator<File>() {
public int compare(File f1, File f2) {
return Long.compare(f2.lastModified(), f1.lastModified());
}
});
Log.i("Unity", "总共有多少文件: "+files.length);
Log.i("Unity", "最后一个文件叫: "+files[0].getName());
byte[] bytes = new byte[(int) files[0].length()];
FileInputStream fileInputStream = new FileInputStream(files[0]);
fileInputStream.read(bytes);
fileInputStream.close();
String fileDataString = Base64.getEncoder().encodeToString(bytes);
/**
* 发送截屏数据
*/
JSONObject jsondata =new JSONObject();
jsondata.put("opcode",OpCode.Send_Screenshot.getValue());
JSONObject content =new JSONObject();
content.put("pic",fileDataString);
jsondata.put("content",content);
SocketClientService.sendMessage(jsondata.toString());
files[0].delete();
} else {
Log.i("Unity", "目录下没有文件!");
}
```
阅读全文