[JAVA] Utiliser uniquement pour écrire des fichiers - Apache Camel

thème

Même si vous n'utilisez pas Apache Camel (liaison système), il est pratique d'utiliser simplement une bibliothèque pratique, alors essayez de l'utiliser.

Cependant, la "sortie de fichier texte" dans l'exemple écrit ici est facile sans installer de bibliothèque. .. ..

Je pense.

Je pense que vous pouvez utiliser diverses fonctions en modifiant simplement les options, alors essayez-le.

Fichier de sortie

-Sortir la chaîne de caractères "aaaa" dans un fichier -Nom du fichier de sortie "test / a4.txt" ・ S'il n'y a pas de dossier de test, il sera créé automatiquement. -Écraser les fichiers


import org.apache.camel.*;
import org.apache.camel.impl.DefaultExchange;
import org.apache.camel.main.Main;

public class FileTest {

    public static Main camel = new Main();

    public static void main(String[] args) throws Exception {
        camel.start();
        ProducerTemplate producer = camel.getCamelTemplate();

        //Création de données
        Exchange exchange = new DefaultExchange(producer.getCamelContext());
        Message message = exchange.getIn();
        message.setHeader(Exchange.FILE_NAME, "test/a4.txt");
        message.setBody("aaaa"); //Le contenu de sortie est du texte

        //Sortie de fichier
        String directory = ".";
        Exchange result = producer.send("file://" + directory, exchange);

        //Vérification des erreurs
        if (result.getException() != null)
            throw result.getException();
    }

}

pom.partie de xml


        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-core</artifactId>
            <version>${camel-ver}</version>
        </dependency>

Sortie de fichier (fichier supplémentaire)

Réécrivez les options ci-dessous

Exchange result = producer.send("file://" + directory + "?fileExist=Append", exchange);

Sortie de fichier (erreur si le fichier existe)

Réécrivez les options ci-dessous

Exchange result = producer.send("file://" + directory + "?fileExist=Fail", exchange);

Sortie de fichier (copie du fichier)

Réécrivez l'implémentation suivante. filename.txt est copié dans a4.txt Le contenu est une copie et le nom du fichier est test / a4.txt.

message.setHeader(Exchange.FILE_NAME, "test/a4.txt");
message.setBody(new File("filename.txt"));

Sortie du fichier (copie du fichier. Copie de la date de modification du fichier)

Réécrivez l'implémentation suivante. filename.txt est copié dans a4.txt

File file = new File("bbb.txt");
message.setBody(file);
message.setHeader(Exchange.FILE_LAST_MODIFIED, file.lastModified());
Exchange result = producer.send("file://" + directory + "?keepLastModified=true", exchange);

Sortie de fichier (copier le fichier. Copier la date de modification du fichier, l'autorisation est 777)

Réécrivez l'implémentation suivante. filename.txt est copié dans a4.txt

File file = new File("bbb.txt");
message.setBody(file);
message.setHeader(Exchange.FILE_LAST_MODIFIED, file.lastModified());
Exchange result = producer.send("file://" + directory + "?keepLastModified=true&chmod=777", exchange);

Pour d'autres options http://camel.apache.org/file2.html

Accès HTTP (S)

・ Le résultat de l'accès par HTTPS est entré en réponse


import org.apache.camel.Exchange;
import org.apache.camel.Message;
import org.apache.camel.ProducerTemplate;
import org.apache.camel.impl.DefaultExchange;
import org.apache.camel.main.Main;

public class HttpTest {
    public static Main camel = new Main();

    public static void main(String[] args) throws Exception {
        camel.start();
        ProducerTemplate producer = camel.getCamelTemplate();

        //Création de données
        Exchange exchange = new DefaultExchange(producer.getCamelContext());
        Message message = exchange.getIn();

        //Accès HTTP
        Exchange result = producer.send("https://www.google.co.jp", exchange);

        //Vérification des erreurs
        if (result.getException() != null)
            throw result.getException();

        //Obtenir des résultats
        String response = result.getOut().getBody(String.class);
        System.out.println(response);
    }
}

pom.Fait partie de xml


        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-http</artifactId>
            <version>${camel-ver}</version>
        </dependency>

Accès HTTP (authentification de base)

Je vais le réécrire comme suit

        Exchange result = producer.send("http://192.168.33.10/member/bbb.html?authMethod=Basic&authUsername=secret&authPassword=aaa", exchange);

Recommended Posts

Utiliser uniquement pour écrire des fichiers - Apache Camel
[Java] Que dois-je utiliser pour écrire des fichiers?
[Apache Camel] Utiliser le composant File
Rubrique 69: N'utiliser des exceptions que pour des conditions exceptionnelles
Comment utiliser binding.pry pour afficher le fichier
Utilisez Maven uniquement pour télécharger des bibliothèques dépendantes