gpt4 book ai didi

java - 下载图片会覆盖上一张图片

转载 作者:行者123 更新时间:2023-12-01 12:51:44 25 4
gpt4 key购买 nike

void downloadFile(){



try {
Bundle bundle = getIntent().getExtras();
String[] imageUrls = bundle.getStringArray(Extra.IMAGES);
// Log.v(imageUrls, "Creating view...");
int pagerPosition = bundle.getInt(Extra.IMAGE_POSITION, 0);

URL url = new URL(imageUrls[pagerPosition]);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();

urlConnection.setRequestMethod("GET");
urlConnection.setDoOutput(true);

//connect
urlConnection.connect();

//set the path where we want to save the file
File SDCardRoot = Environment.getExternalStorageDirectory();
//create a new file, to save the downloaded file
File file = new File(SDCardRoot,"image.png");

FileOutputStream fileOutput = new FileOutputStream(file);

//Stream used for reading the data from the internet
InputStream inputStream = urlConnection.getInputStream();

//this is the total size of the file which we are downloading
totalSize = urlConnection.getContentLength();

runOnUiThread(new Runnable() {
public void run() {
pb.setMax(totalSize);
}
});

//create a buffer...
byte[] buffer = new byte[1024];
int bufferLength = 0;

while ( (bufferLength = inputStream.read(buffer)) > 0 ) {
fileOutput.write(buffer, 0, bufferLength);
downloadedSize += bufferLength;
// update the progressbar //
runOnUiThread(new Runnable() {
public void run() {
pb.setProgress(downloadedSize);
float per = ((float)downloadedSize/totalSize) * 100;
cur_val.setText("Downloaded " + downloadedSize + "KB / " + totalSize + "KB (" + (int)per + "%)" );
}
});
}
//close the output stream when complete //
fileOutput.close();
runOnUiThread(new Runnable() {
public void run() {
// pb.dismiss(); // if you want close it..
}
});

} catch (final MalformedURLException e) {
showError("Error : MalformedURLException " + e);
e.printStackTrace();
} catch (final IOException e) {
showError("Error : IOException " + e);
e.printStackTrace();
}
catch (final Exception e) {
showError("Error : Please check your internet connection " + e);
}
}

嗨,我正在使用此功能从 URL 下载图像,效果很好。但它会覆盖以前下载的图像..

File file = new File(SDCardRoot,"image.png");

如何在上面一行中的每个新下载中更改名称..它不接受任何非字符串的内容。

任何帮助都会很棒。

最佳答案

这是因为您总是使用相同的名称image.png保存图像,使用当前日期时间更改名称所以改变这个

File file = new File(SDCardRoot,"image.png");

SimpleDateFormat formatter = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss");
Date now = new Date();
String fileName = "image" + formatter.format(now) + ".png";
File file = new File(SDCardRoot,fileName);

编辑
您还可以使用日历作为

Calendar calendar = Calendar.getInstance();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss");
String fileName = "image" + formatter.format(calendar.getTime()) + ".png";
File file = new File(SDCardRoot,fileName);

关于java - 下载图片会覆盖上一张图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24179890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com