Maison Java javaDidacticiel Explication des méthodes de transmission de données entre canaux en JAVA

Explication des méthodes de transmission de données entre canaux en JAVA

Jun 26, 2017 am 09:21 AM
channel 数据传输

Dans Java NIO, si l'un des deux canaux est un FileChannel, vous pouvez directement transférer des données d'un canal (Note du traducteur : le canal est souvent traduit par canal en chinois) vers un autre canal.

transferFrom() : réception passive

La méthode transferFrom() de FileChannel peut transférer des données du canal source vers FileChannel (Note du traducteur : cette méthode se trouve dans la documentation du JDK. interprété comme le transfert d'octets d'un canal d'octets lisible donné vers un fichier sur ce canal). Le paramètre d'entrée position de la méthode

indique à partir de la position pour écrire les données dans le fichier cible, et le nombre indique le nombre maximum d'octets transférés. Si le canal source dispose de moins de octets d'espace restant, le nombre d'octets transférés est inférieur au nombre d'octets demandés.
Notez également que dans l'implémentation de SoketChannel, SocketChannel ne transmettra que les données préparées à ce moment (qui peuvent être inférieures au nombre d'octets). Par conséquent, le SocketChannel ne peut pas transférer toutes les données demandées (nombre d’octets) dans le FileChannel.

transferTo() : ​​Envoyez activement la méthode

transferTo() pour transférer des données de FileChannel vers d'autres canaux. Voici un exemple simple :

Sauf que l'objet FileChannel appelant la méthode est différent, tout le reste est identique.
Les problèmes mentionnés ci-dessus à propos de SocketChannel existent également dans la méthode transferTo(). SocketChannel continuera à transmettre des données jusqu'à ce que le tampon cible soit rempli.

Exemple :

@Testpublic void test2() {
        RandomAccessFile fromFile = new RandomAccessFile("fromFile.txt", "rw");
        FileChannel fromChannel = fromFile.getChannel();
        RandomAccessFile toFile = new RandomAccessFile("toFile.txt", "rw");
        FileChannel toChannel = toFile.getChannel();long position = 0;long count = fromChannel.size();//从from 读到 本通道;注意socketfrom只会发送已经准备好的,不会发送count个        toChannel.transferFrom(fromChannel,position, count);//将本通道 写到 to;注意sockedfrom会一直发送,直到to被填满        fromChannel.transferTo(position, count, toChannel);
    }
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment transférer toutes les données entre deux iPhones Explication détaillée : Comment migrer les données d'anciens téléphones Comment transférer toutes les données entre deux iPhones Explication détaillée : Comment migrer les données d'anciens téléphones Mar 18, 2024 pm 06:31 PM

Lorsque de nombreux amis changent de téléphone Apple, ils souhaitent importer toutes les données de l'ancien téléphone vers le nouveau téléphone. En théorie, c'est tout à fait réalisable, mais en pratique, il est impossible de « transférer toutes » les données. Énumérez plusieurs façons de « transférer une partie des données ». 1. iTunes est un logiciel préinstallé sur les téléphones mobiles Apple. Il peut être utilisé pour migrer toutes les données des anciens téléphones mobiles, mais il doit être utilisé conjointement avec un ordinateur. La migration peut être effectuée en installant iTunes sur l'ordinateur, puis en connectant le téléphone et l'ordinateur via un câble de données, en utilisant iTunes pour sauvegarder les applications et les données du téléphone, et enfin en restaurant la sauvegarde sur le nouveau téléphone Apple. 2. iCloudiCloud est l'outil « espace cloud » exclusif d'Apple. Vous pouvez d'abord vous connecter à votre ancien téléphone.

Guide d'appel de l'API React : Comment interagir et transférer des données avec l'API backend Guide d'appel de l'API React : Comment interagir et transférer des données avec l'API backend Sep 26, 2023 am 10:19 AM

Guide d'appel ReactAPI : Comment interagir avec et transférer des données vers l'API backend Présentation : Dans le développement Web moderne, interagir avec et transférer des données vers l'API backend est une exigence courante. React, en tant que framework frontal populaire, fournit des outils et fonctionnalités puissants pour simplifier ce processus. Cet article explique comment utiliser React pour appeler l'API backend, y compris les requêtes de base GET et POST, et fournit des exemples de code spécifiques. Installez les dépendances requises : Tout d'abord, assurez-vous qu'Axi est installé dans le projet

Utilisation de HTTPS pour la transmission de données dans le développement d'API Java Utilisation de HTTPS pour la transmission de données dans le développement d'API Java Jun 18, 2023 pm 10:43 PM

Avec le développement de la science et de la technologie, la communication en réseau est devenue l’un des outils importants de transmission de l’information dans la société moderne. Mais dans le même temps, la transmission d’informations sur le réseau est confrontée à des risques d’attaques malveillantes et de vol, la sécurité est donc particulièrement importante. C’est sur cette base qu’est né le protocole HTTPS. Il s'agit d'un protocole qui ajoute le cryptage SSL/TLS au protocole HTTP pour assurer la sécurité de la transmission réseau. En tant que langage largement utilisé dans le développement de réseaux, Java fournit naturellement une API riche pour prendre en charge le protocole HTTPS. Cet article sera

PHP trait DTO : un outil clé pour optimiser le processus de transfert de données PHP trait DTO : un outil clé pour optimiser le processus de transfert de données Oct 12, 2023 pm 03:10 PM

PHPtraitDTO : Un outil clé pour optimiser le processus de transmission de données, des exemples de code spécifiques sont nécessaires Introduction : Au cours du processus de développement, la transmission de données est une exigence très courante, en particulier lorsque les données sont transférées entre différents niveaux. Lors du processus de transmission de ces données, nous devons souvent traiter, vérifier ou convertir les données pour répondre aux différents besoins de l'entreprise. Afin d'améliorer la lisibilité et la maintenabilité du code, nous pouvons utiliser PHPtraitDTO (DataTransferObject) pour optimiser

PHP trait DTO : un outil clé pour optimiser le processus de transfert de données PHP trait DTO : un outil clé pour optimiser le processus de transfert de données Oct 12, 2023 pm 02:33 PM

PHPtraitDTO : Un outil clé pour optimiser le processus de transfert de données, des exemples de code spécifiques sont requis Présentation : Dans le développement PHP, le transfert de données est une tâche très courante, comme la transmission de données du contrôleur à la vue, la transmission de données de l'interface au front fin, etc Cependant, lors du processus de transmission des données, celles-ci doivent souvent être traitées, converties et encapsulées, ce qui peut entraîner une redondance du code et des difficultés de maintenance. Pour résoudre ce problème, nous pouvons utiliser PHPtraitDTO (DataTransfer

Que signifie chaîne en langage Go ? Que signifie chaîne en langage Go ? Dec 14, 2023 pm 02:21 PM

Channel in Go est un mécanisme de communication et de synchronisation des données entre les coroutines. Peut être considéré comme un type de données spécial, similaire à une file d'attente ou un canal, utilisé pour transférer des données entre différentes coroutines. Channel propose deux opérations principales : envoyer et recevoir. Les opérations d'envoi et de réception dans un canal sont bloquantes, ce qui signifie que si aucun émetteur ou récepteur n'est prêt, l'opération sera bloquée jusqu'à ce qu'une coroutine soit prête à effectuer l'opération correspondante, etc.

Comment la fonction Golang communique-t-elle avec goroutine via un canal ? Comment la fonction Golang communique-t-elle avec goroutine via un canal ? May 01, 2024 pm 09:42 PM

Le langage Go utilise des canaux et des goroutines pour communiquer. Après avoir créé le canal, la goroutine peut passer

Comment les fonctions C++ implémentent-elles la transmission de données dans la programmation réseau ? Comment les fonctions C++ implémentent-elles la transmission de données dans la programmation réseau ? Apr 27, 2024 pm 05:06 PM

Les fonctions de transmission de données réseau de C++ incluent recv() et send(), qui sont utilisées pour recevoir et envoyer des données côté serveur. Les étapes suivantes illustrent le processus d'utilisation de recv() et send() pour créer un serveur d'écho : 1. Créez un socket ; 2. Définissez les informations d'adresse du serveur 3. Liez le socket à l'adresse du serveur ; ; 5. Acceptez la connexion, recevez les données et renvoyez-les au client en boucle ; 6. Fermez la connexion et le socket.

See all articles