Au fait, j'ai décidé de mettre en œuvre les mouvements suivants dans l'application locale Java en entreprise.
et ʻTélécharger le fichier à partir de l'URL et enregistrer
. Il y avait un article, mais je n'ai pas pu en trouver un complet.
Comme c'est un gros problème, je l'ai écrit en combinaison.pom.xml
<!--réduction-->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.2</version>
</dependency>
<!--réduction-->
DownloadSample.java
import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Paths;
import javax.swing.JFileChooser;
import org.apache.http.HttpEntity;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
public class DownloadSample {
//Télécharger l'URL de destination
static String downloadUrl = "http://sample.com/hoge.txt";
public static void main(String[] args) throws IOException {
//Obtenez le nom de fichier par défaut à partir de l'URL.
URL url = new URL(downloadUrl);
String fileName = Paths.get(url.getPath()).getFileName().toString();
//Afficher la boîte de dialogue d'enregistrement
JFileChooser filechooser = new JFileChooser(fileName);
//Spécifiez le nom de fichier par défaut
filechooser.setSelectedFile(new File(fileName));
//Afficher la boîte de dialogue d'enregistrement
if (filechooser.showSaveDialog(null) != JFileChooser.APPROVE_OPTION) {
//Quitter lorsque vous appuyez sur autre que "Enregistrer"
return;
}
//Définir la destination d'enregistrement
File saveFile = filechooser.getSelectedFile();
try (
//Définir HttpClient
final CloseableHttpClient client = HttpClients.createDefault();
// Get
final CloseableHttpResponse response = client.execute(new HttpGet(downloadUrl))) {
//Vérifiez l'état et enregistrez le fichier si la communication est réussie
final int status = response.getStatusLine().getStatusCode();
if (status >= 200 && status < 300) {
final HttpEntity entity = response.getEntity();
//Enregistrer le fichier
Files.write(Paths.get(saveFile.toString()),
entity == null ? new byte[0] : EntityUtils.toByteArray(entity));
} else {
throw new ClientProtocolException("Unexpected response status: " + status);
}
}
}
}
C'est vraiment juste cet exemple, donc ce n'est peut-être pas nécessaire ... GitHub
Téléchargez et enregistrez le fichier [Java](en utilisant Apache HttpComponents HttpClient 4.5.2) → La plupart des communications Http et de l'enregistrement de fichiers ont été détournés de cet article. Je vous remercie! Afficher la boîte de dialogue "Enregistrer le fichier" Conseils d'utilisation pratique de JFileChooser → Je me suis référé à cet article pour savoir comment sélectionner la boîte de dialogue d'enregistrement. Je vous remercie! Comment utiliser java.net.URL et une petite note de NIO.2 → Je me suis référé à cet article pour le processus d'obtention du nom de fichier à partir de l'URL. Je vous remercie!