我正在使用下面的代码从我的网络服务下载一些图像,它工作得很好但是在下载并复制到SD卡后,它们是未知的文件类型,尽管它们最后有.jpg,我的应用程序仍然可以将它们加载到imageviews中但我无法通过文件管理器中的设备库打开任何下载的图像。有什么想法吗?
以下是我下载和保存图片的方法:
public void downloadImage(String url, String fileName) {
try {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(policy);
String[] fileNameSplit = fileName.split("\\.");
String fileNameMobile = fileNameSplit[0] + "-mob." + fileNameSplit[1];
URL urlConnection = new URL(url);
URLConnection connection = urlConnection.openConnection();
InputStream in = connection.getInputStream();
File outFile = new File(file.getPath() + "/" + fileNameMobile);
OutputStream out = new FileOutputStream(outFile);
copyFile(in, out);
out.close();
in.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
文件管理器浏览的目录中的示例文件名:
_58df8aa6dbb44ff7b870b49a4b2d8efb-mob.jpg
答案 0 :(得分:1)
试试这个
bitmap.compress(Bitmap.CompressFormat.JPEG, quality, outStream);
这是一个小例子
File file = new File(file.getPath() + "/" + fileNameMobile);
FileOutputStream fOut = new FileOutputStream(file);
bmp.compress(Bitmap.CompressFormat.JPEG, 85, fOut);
fOut.flush();
fOut.close();
答案 1 :(得分:0)
在我从网址中读取下载的文件名后,似乎在代码的末尾添加了\n
,这导致该文件未知,而且我无法读取稍后使用相同的文件名而不使用\n
,但现在从文件名末尾删除\n
它现在可以正常工作。