问题描述
我使用android studio开发一个APP,要求读取U盘内的图片并显示,但是我能获取到U盘的路径,在该路径下寻找图片是空的,但是U盘内确实有图片,且为.jpg格式,但就是读取不到,我用了FileInputStream等一些方法,返回的都是空,所以我想知道是什么原因?且如何解决?
问题出现的环境背景及自己尝试过哪些方法
FileInputStream,listfile遍历等
相关代码
粘贴代码文本(请勿用截图)
File root = null;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
//Toast.makeText(this, "大于", Toast.LENGTH_SHORT).show();
root = new File(getUSBPath(MainActivity.this)+"/"+"oip-c.jpg");
//root = new File("/storage");
}
if (!root.exists()) {
Toast.makeText(this, "未检测到U盘根目录", Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(this, "检测到U盘根目录", Toast.LENGTH_SHORT).show();
textView.setText(String.valueOf(root));
Bitmap bitmap = getLoacalBitmap(String.valueOf(root));
if (bitmap != null){
imageView.setImageBitmap(bitmap);
}else {
Toast.makeText(this, "没图片", Toast.LENGTH_SHORT).show();
}
}
// 过滤出png和jpg格式
File[] imageFiles = root.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
//textView.setText(name);
return name.endsWith(".png") || name.endsWith(".jpg");
//return true;
//return false;
}
});
if (imageFiles == null) {
Toast.makeText(this, "未检测到图片文件", Toast.LENGTH_SHORT).show();
return;
}
你期待的结果是什么?实际看到的错误信息又是什么?
能读取到图片并正常显示
根据你提供的代码和描述,可能有以下几个原因导致无法读取到U盘内的图片:
getUSBPath(MainActivity.this)
方法获取到的U盘路径是正确的,可以在Log中打印出来进行验证。File.separator
代替"/",以确保在不同系统上的路径正确。getLoacalBitmap(String.valueOf(root))
方法加载图片时,可以通过以下方法来加载:如果仍然无法解决问题,建议使用调试工具查看具体报错信息。