Java: Laden Sie die Datei herunter und speichern Sie sie an dem im Dialogfeld [Use HttpClient] ausgewählten Speicherort.

Einführung

Übrigens habe ich mich entschlossen, die folgenden Bewegungen in Java Local Application in Business zu implementieren.

  1. Öffnen Sie einen Dialog, um das Speicherziel auszuwählen
  2. Speichern Sie die von der angegebenen URL heruntergeladene Datei am ausgewählten Speicherziel Es ist ein Prozess, der ziemlich häufig zu sein scheint, also habe ich geprüft, ob es einen Artikel gibt, der so verwendet werden kann, wie er ist ~~ Kopieren und Einfügen ~~, über jeden Prozess wie "Öffnen eines Dialogs" und "Herunterladen und Speichern einer Datei von der URL" Es gab einen Artikel, aber ich konnte keinen vollständigen finden. Da es eine große Sache ist, habe ich es in Kombination geschrieben.

Unten Beispiel

pom.xml


<!--Kürzung-->
    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpclient</artifactId>
      <version>4.5.2</version>
    </dependency>
<!--Kürzung-->

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 {
  //Ziel-URL herunterladen
  static String downloadUrl = "http://sample.com/hoge.txt";

  public static void main(String[] args) throws IOException {
    //Rufen Sie den Standarddateinamen von der URL ab.
    URL url = new URL(downloadUrl);
    String fileName = Paths.get(url.getPath()).getFileName().toString();

    //Dialogfeld zum Speichern anzeigen
    JFileChooser filechooser = new JFileChooser(fileName);
    //Geben Sie den Standarddateinamen an
    filechooser.setSelectedFile(new File(fileName));
    //Dialogfeld "Speichern" anzeigen
    if (filechooser.showSaveDialog(null) != JFileChooser.APPROVE_OPTION) {
      //Beenden Sie, wenn Sie nicht "Speichern" drücken.
      return;
    }
    //Festlegen des Speicherziels
    File saveFile = filechooser.getSelectedFile();
    try (
        //Stellen Sie HttpClient ein
        final CloseableHttpClient client = HttpClients.createDefault();
        // Get
        final CloseableHttpResponse response = client.execute(new HttpGet(downloadUrl))) {
      //Überprüfen Sie den Status und speichern Sie die Datei, wenn die Kommunikation erfolgreich ist
      final int status = response.getStatusLine().getStatusCode();
      if (status >= 200 && status < 300) {
        final HttpEntity entity = response.getEntity();
        //Datei speichern
        Files.write(Paths.get(saveFile.toString()),
            entity == null ? new byte[0] : EntityUtils.toByteArray(entity));
      } else {
        throw new ClientProtocolException("Unexpected response status: " + status);
      }
    }
  }
}

Es ist wirklich nur dieses Beispiel, daher ist es möglicherweise nicht erforderlich ... GitHub

Verweise

Herunterladen und Speichern der [Java] -Datei (mit Apache HttpComponents HttpClient 4.5.2) → Der größte Teil der HTTP-Kommunikation und des Speicherns von Dateien wurde von diesem Artikel abgelenkt. Vielen Dank! Dialogfeld "Datei speichern" anzeigen Tipps zur bequemen Verwendung von JFileChooser → In diesem Artikel wurde beschrieben, wie Sie den Speicherdialog auswählen. Vielen Dank! Verwendung von java.net.URL und ein kleiner Hinweis zu NIO.2 → Ich habe auf diesen Artikel verwiesen, um den Dateinamen von der URL abzurufen. Vielen Dank!

Recommended Posts

Java: Laden Sie die Datei herunter und speichern Sie sie an dem im Dialogfeld [Use HttpClient] ausgewählten Speicherort.
Geben Sie den Java-Speicherort in eclipse.ini an
Entpacken Sie die Zip-Datei in Java
JSON in Java und Jackson Teil ③ Betten Sie JSON in HTML ein und verwenden Sie es aus JavaScript
[Java] Verwendung der File-Klasse
Die Geschichte, zu vergessen, eine Datei in Java zu schließen und zu scheitern
Anmerkung: [Java] Wenn sich eine Datei im überwachten Verzeichnis befindet, verarbeiten Sie sie.
[Java] Verwenden Sie kryptografische Technologie mit Standardbibliotheken
Ich möchte eine Datei mit Ruby im Internet herunterladen und lokal speichern (mit Vorsicht).
[Java8] Durchsuchen Sie das Verzeichnis und holen Sie sich die Datei
Ist es möglich, die Bibliothek (aar) in die Android-Bibliothek (aar) zu stellen und zu verwenden?
Ich habe die Daten der Reise (Tagebuchanwendung) in Java erhalten und versucht, sie # 001 zu visualisieren
So komprimieren Sie eine JAVA-CSV-Datei und verwalten sie in einem Byte-Array
Ich kann mich nicht an die Eingabe / Ausgabe von Textdateien in Java erinnern, also habe ich sie zusammengefasst.
In Bezug auf transiente Modifikatoren und Serialisierung in Java
Erfassen und speichern Sie die Selen-Installation in Java
[Java] Dateien in src / main / resources lesen
Laden Sie Notizen in Java auf S3 hoch und laden Sie sie herunter
[Android-Entwicklung] Holen Sie sich mit Java Bilder vom Server und legen Sie sie in ImageView fest! !!
[AWS Lambda] Ändern Sie die Größe des in S3 gespeicherten Bildes und speichern Sie es in einem anderen S3 (mit Ruby).
Speichern von Dateien mit der angegebenen Erweiterung unter dem in Java angegebenen Verzeichnis in der Liste
Schreiben Sie ABNF in Java und geben Sie die E-Mail-Adresse weiter
Importieren Sie eine Instanz und verwenden Sie sie auf einem anderen Bildschirm
Schreiben Sie eine Klasse in Kotlin und nennen Sie sie in Java
[Java] Holen Sie sich die Datei unabhängig von der Umgebung in das JAR
In der Abbildung verstandene Java-Klassen und -Instanzen
21 Lesen Sie das Skript aus der Datei und führen Sie es aus
Verwendung von Abstract Class und Interface in Java richtig
So schreiben Sie Kommentare in die Schemadefinitionsdatei in GraphQL Java und spiegeln sie in GraphiQL und GraphQL Playground wider
Verwenden Sie OpenCV mit Java
Verwenden Sie PreparedStatement in Java
Kopieren Sie den Dateiinhalt und fügen Sie ihn in den Ubuntu Docker-Container ein
JSON in Java und Jackson Teil 1 Gibt JSON vom Server zurück
Implementieren Sie die Java-Schnittstelle in der JRuby-Klasse und rufen Sie sie von Java aus auf
Aufrufen und Verwenden der API in Java (Spring Boot)
Korrigieren Sie den Zeichencode in Java und lesen Sie von der URL
Gründe, Servlet und JSP in der Java-Entwicklung getrennt zu verwenden
Denken Sie über die Unterschiede zwischen Funktionen und Methoden nach (in Java)
Ruft Attribute und Werte aus einer XML-Datei in Java ab
[Java] Verwenden Sie ResolverStyle.LENIENT, um Datum und Uhrzeit gut zu handhaben
[Rails] Erhalten Sie access_token zum Zeitpunkt der Twitter-Authentifizierung mit Sorcery und speichern Sie es in der Datenbank
Konvertieren Sie Excel mit Java in Blob, speichern Sie es, lesen Sie es aus der Datenbank und geben Sie es als Datei aus!
Stellen Sie die Sensorinformationen von Raspberry Pi in Java grafisch dar und überprüfen Sie sie mit einem Webbrowser