Heim Java javaLernprogramm Erläuterung der Datenübertragungsmethoden zwischen Kanälen in JAVA

Erläuterung der Datenübertragungsmethoden zwischen Kanälen in JAVA

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

Wenn in Java NIO einer der beiden Kanäle ein FileChannel ist, können Sie Daten direkt von einem Kanal (Anmerkung des Übersetzers: Kanal wird auf Chinesisch oft als Kanal übersetzt) ​​auf einen anderen Kanal übertragen.

transferFrom(): passiver Empfang

Die transferFrom()-Methode von FileChannel kann Daten vom Quellkanal an FileChannel übertragen (Anmerkung des Übersetzers: Diese Methode ist in der JDK-Dokumentation enthalten wird als Übertragung von Bytes von einem bestimmten lesbaren Byte-Kanal in eine Datei auf diesem Kanal interpretiert. Der Eingabeparameter position der Methode

gibt an, ab welcher Position Daten in die Zieldatei geschrieben werden sollen, und count gibt die maximale Anzahl der übertragenen Bytes an. Wenn der Quellkanal über weniger als 50 Bytes verbleibenden Speicherplatz verfügt, ist die Anzahl der übertragenen Bytes geringer als die Anzahl der angeforderten Bytes.
Beachten Sie außerdem, dass SocketChannel bei der Implementierung von SoketChannel nur die zu diesem Zeitpunkt vorbereiteten Daten überträgt (die möglicherweise weniger als die Anzahl der Bytes betragen). Daher überträgt der SocketChannel möglicherweise nicht alle angeforderten Daten (Anzahl der Bytes) in den FileChannel.

transferTo(): ​​​​Senden Sie aktiv die Methode

transferTo(), um Daten von FileChannel an andere Kanäle zu übertragen. Das Folgende ist ein einfaches Beispiel:

Abgesehen davon, dass das FileChannel-Objekt, das die Methode aufruft, anders ist, ist alles andere gleich.
Die oben genannten Probleme zu SocketChannel bestehen auch bei der Methode transferTo(). SocketChannel überträgt weiterhin Daten, bis der Zielpuffer gefüllt ist.

Beispiel:

@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);
    }
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonErläuterung der Datenübertragungsmethoden zwischen Kanälen in JAVA. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So übertragen Sie alle Daten zwischen zwei iPhones. Ausführliche Erklärung: So migrieren Sie Daten von alten Telefonen So übertragen Sie alle Daten zwischen zwei iPhones. Ausführliche Erklärung: So migrieren Sie Daten von alten Telefonen Mar 18, 2024 pm 06:31 PM

Wenn viele Freunde ihr Apple-Telefon wechseln, möchten sie alle Daten vom alten Telefon auf das neue Telefon importieren. In der Praxis ist es jedoch unmöglich, alle Daten zu „übertragen“. Listen Sie mehrere Möglichkeiten zur „Übertragung eines Teils der Daten“ auf. 1. iTunes ist eine auf Apple-Handys vorinstallierte Software. Sie kann zur Migration aller Daten auf alten Mobiltelefonen verwendet werden, muss jedoch in Verbindung mit einem Computer verwendet werden. Die Migration kann abgeschlossen werden, indem iTunes auf dem Computer installiert wird, dann Telefon und Computer über ein Datenkabel verbunden werden, iTunes zum Sichern der Apps und Daten im Telefon verwendet wird und schließlich die Sicherung auf dem neuen Apple-Telefon wiederhergestellt wird. 2. iCloudiCloud ist Apples exklusives „Cloud Space“-Tool. Sie können sich zuerst bei Ihrem alten Telefon anmelden.

React API Call Guide: So interagieren und übertragen Sie Daten mit der Backend-API React API Call Guide: So interagieren und übertragen Sie Daten mit der Backend-API Sep 26, 2023 am 10:19 AM

ReactAPI-Aufrufanleitung: So interagieren Sie mit der Backend-API und übertragen Daten an diese. Übersicht: In der modernen Webentwicklung ist die Interaktion mit und die Übertragung von Daten an die Backend-API eine häufige Anforderung. React bietet als beliebtes Front-End-Framework einige leistungsstarke Tools und Funktionen, um diesen Prozess zu vereinfachen. In diesem Artikel wird erläutert, wie Sie mit React die Backend-API aufrufen, einschließlich grundlegender GET- und POST-Anfragen, und es werden spezifische Codebeispiele bereitgestellt. Installieren Sie die erforderlichen Abhängigkeiten: Stellen Sie zunächst sicher, dass Axi im Projekt installiert ist

Verwendung von HTTPS zur Datenübertragung in der Java-API-Entwicklung Verwendung von HTTPS zur Datenübertragung in der Java-API-Entwicklung Jun 18, 2023 pm 10:43 PM

Mit der Entwicklung von Wissenschaft und Technologie ist die Netzwerkkommunikation zu einem wichtigen Instrument zur Informationsübertragung in der modernen Gesellschaft geworden. Da die Informationsübertragung im Netzwerk jedoch gleichzeitig dem Risiko böswilliger Angriffe und Diebstähle ausgesetzt ist, ist Sicherheit besonders wichtig. Auf dieser Grundlage entstand das HTTPS-Protokoll. Es handelt sich um ein Protokoll, das dem HTTP-Protokoll eine SSL/TLS-Verschlüsselung hinzufügt, um die Sicherheit der Netzwerkübertragung zu gewährleisten. Als eine in der Netzwerkentwicklung weit verbreitete Sprache bietet Java natürlich eine umfangreiche API zur Unterstützung des HTTPS-Protokolls. Dieser Artikel wird

PHP-Merkmal DTO: ein wichtiges Werkzeug zur Optimierung des Datenübertragungsprozesses PHP-Merkmal DTO: ein wichtiges Werkzeug zur Optimierung des Datenübertragungsprozesses Oct 12, 2023 pm 03:10 PM

PHPtraitDTO: Ein wichtiges Tool zur Optimierung des Datenübertragungsprozesses. Es sind spezifische Codebeispiele erforderlich. Einführung: Während des Entwicklungsprozesses ist die Datenübertragung eine sehr häufige Anforderung, insbesondere wenn Daten zwischen verschiedenen Ebenen übertragen werden. Bei der Übermittlung dieser Daten müssen wir die Daten häufig verarbeiten, überprüfen oder konvertieren, um unterschiedliche Geschäftsanforderungen zu erfüllen. Um die Lesbarkeit und Wartbarkeit des Codes zu verbessern, können wir zur Optimierung PHPtraitDTO (DataTransferObject) verwenden

PHP-Merkmal DTO: ein wichtiges Werkzeug zur Optimierung des Datenübertragungsprozesses PHP-Merkmal DTO: ein wichtiges Werkzeug zur Optimierung des Datenübertragungsprozesses Oct 12, 2023 pm 02:33 PM

PHPtraitDTO: Ein wichtiges Tool zur Optimierung des Datenübertragungsprozesses. Es sind spezifische Codebeispiele erforderlich. Übersicht: In der PHP-Entwicklung ist die Datenübertragung eine sehr häufige Aufgabe, z. B. die Übergabe von Daten vom Controller an die Ansicht und die Übergabe von Daten von der Schnittstelle an die Vorderseite Ende usw. Bei der Datenübertragung müssen die Daten jedoch häufig verarbeitet, konvertiert und gekapselt werden, was zu Coderedundanz und Schwierigkeiten bei der Wartung führen kann. Um dieses Problem zu lösen, können wir PHPtraitDTO (DataTransfer

Was bedeutet Kanal in der Go-Sprache? Was bedeutet Kanal in der Go-Sprache? Dec 14, 2023 pm 02:21 PM

Der Kanal in der Go-Sprache ist ein Mechanismus zur Kommunikation und Datensynchronisation zwischen Coroutinen. Man kann es sich als einen speziellen Datentyp vorstellen, ähnlich einer Warteschlange oder Pipe, der zum Übertragen von Daten zwischen verschiedenen Coroutinen verwendet wird. Der Kanal bietet zwei Hauptoperationen: Senden und Empfangen. Sowohl Sende- als auch Empfangsvorgänge in einem Kanal sind blockierend. Das heißt, wenn kein Sender oder Empfänger bereit ist, wird der Vorgang blockiert, bis eine Coroutine bereit ist, den entsprechenden Vorgang usw. auszuführen.

Wie kommunizieren Golang-Funktionen über Kanäle mit Goroutine? Wie kommunizieren Golang-Funktionen über Kanäle mit Goroutine? May 01, 2024 pm 09:42 PM

Die Go-Sprache nutzt Kanäle und Goroutinen zur Kommunikation. Nach dem Erstellen des Kanals kann die Goroutine übergeben werden

Wie implementieren C++-Funktionen die Datenübertragung in der Netzwerkprogrammierung? Wie implementieren C++-Funktionen die Datenübertragung in der Netzwerkprogrammierung? Apr 27, 2024 pm 05:06 PM

Zu den Netzwerkdatenübertragungsfunktionen von C++ gehören recv() und send(), die zum Empfangen und Senden von Daten auf der Serverseite verwendet werden. Die folgenden Schritte veranschaulichen den Prozess der Verwendung von recv() und send() zum Erstellen eines Echo-Servers: 1. Erstellen Sie einen Socket. 2. Legen Sie die Server-Adressinformationen fest. 3. Binden Sie den Socket an die Serveradresse 5. Akzeptieren Sie die Verbindung, empfangen Sie Daten und senden Sie sie in einer Schleife an den Client zurück. 6. Schließen Sie die Verbindung und den Socket.

See all articles